最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx lua防火墻防SQL注入配置

 更新時間:2025年07月13日 14:54:28   作者:遇見火星  
本文詳細介紹了基于Nginx和Lua的防火墻配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、防火墻配置

二、下載安裝文件

1. 下載程序

cd /opt
wget https://github.com/LuaJIT/LuaJIT/archive/refs/tags/v2.0.5.tar.gz -O luajit-v2.0.5.tar.gz
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.4.tar.gz -O ngx_devel_kit-0.3.4.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz -O lua-nginx-module-0.10.9rc7.tar.gz
wget http://nginx.org/download/nginx-1.19.3.tar.gz -O nginx-1.19.3.tar.gz

2. 逐項解壓

tar -xzvf luajit-v2.0.5.tar.gz
tar -xzvf ngx_devel_kit-0.3.4.tar.gz
tar -xzvf lua-nginx-module-0.10.9rc7.tar.gz
tar -xzvf nginx-1.19.3.tar.gz

三、安裝

1. 安裝lua環(huán)境

cd /opt/LuaJIT-2.0.5/
make && make install
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

2. 安裝nginx,需要包含nginx lua模塊

cd /opt/nginx-1.19.3
./configure --prefix=/usr/local/nginx \
--add-module=/opt/ngx_devel_kit-0.3.4 \
--add-module=/opt/lua-nginx-module-0.10.9rc7
make && make install

四、配置lua防火墻

1. 下載lua防火墻代碼

cd /usr/local/nginx/conf
git clone https://github.com/loveshell/ngx_lua_waf.git

2. 加載lua防火墻配置,vi /usr/local/nginx/conf/nginx.conf,http中加入以下紅色部分配置

http {
 # 其它配置
 ...

 lua_package_path "/usr/local/nginx/conf/ngx_lua_waf/?.lua";
 lua_shared_dict limit 10m;
 init_by_lua_file  /usr/local/nginx/conf/ngx_lua_waf/init.lua; 
 access_by_lua_file /usr/local/nginx/conf/ngx_lua_waf/waf.lua;
}

3. 修改防火墻配置RulePath值,vi /usr/local/nginx/conf/ngx_lua_waf/config.lua

# 默認值是`/usr/local/nginx/conf/waf/wafconf/`  /waf 改為 /ngx_lua_waf
RulePath = "/usr/local/nginx/conf/ngx_lua_waf/wafconf/" 

4. 啟動nginx

/usr/local/nginx/sbin/nginx

五、測試

1. 測試url中的關鍵字,出現(xiàn)攔截頁面表示配置成功, 攔截參數(shù)在/usr/local/nginx/conf/ngx_lua_waf/wafconf/url文件

2. 測試post關鍵字

六、準備演示環(huán)境

1. 前端演示頁面

<html>
 
<head>
    <title>登陸</title>
    <meta charset="utf-8">
</head>
 
<body>
    <div>
        用戶名:<input type="text" name="user" id="txtUser"><br>
        密碼:<input type="password" name="pwd" id="txtPassword"><br>
        <input type="button" onclick="login('login')" value="登陸"> <br>
        <div id="divMsg"></div>
 
        <script>
            function login(action) {
                var httpRequest = new XMLHttpRequest()
                httpRequest.onreadystatechange = function () {
                    if (httpRequest.readyState == 4) {
                        document.getElementById("divMsg").innerText = httpRequest.responseText
                    }
                }
                httpRequest.open('POST', `/api/${action}`, true)
                httpRequest.setRequestHeader(
                    'Content-type',
                    'application/x-www-form-urlencoded'
                )
                var user = document.getElementById("txtUser").value
                var pwd = document.getElementById("txtPassword").value
                var str = `username=${user}&password=${pwd}`
                httpRequest.send(str)
            }
        </script>
    </div>
</body>
 
</html>

2. 服務端演示代碼,模擬SQL注入

@Autowired
JdbcTemplate jdbcTemplate;
/**
 * 拼sql查詢
 *
 * @param user
 * @return
 */
@PostMapping("/login")
public String login(User user) {
    String sql = "select * from sys_user where user_name = '" + user.getUsername() + "' and pass_word = '" + user.getPassword() + "'";
    System.out.println("SQL:");
    System.out.println(sql);
    List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
    System.out.println(maps.size());
    if (maps.size() > 0) {
        return"login success";
    } else {
        return"login fail";
    }
}

3. nginx代理設置

location /api/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://192.168.1.18:8093/;
}

4. 配置攔截參數(shù)(lua防火墻通過檢測post表單中的關鍵字實現(xiàn)攔截)。

# 設置SQL注入的關鍵參數(shù)
echo "'\s+or\s+" >> /usr/local/nginx/conf/ngx_lua_waf/wafconf/post
# 重新加載,使配置生效
/usr/local/nginx/sbin/nginx -s reload

七、效果演示

1. 正常登陸

2. 注入成功,在配置post攔截參數(shù)以前的效果

3. 注入被攔截,在配置post攔截參數(shù)以后的效果

到此這篇關于nginx lua防火墻防SQL注入配置的文章就介紹到這了,更多相關Nginx lua防止SQL注入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • 解決httpd占用80端口導致Nginx啟動失敗報錯的解決辦法

    解決httpd占用80端口導致Nginx啟動失敗報錯的解決辦法

    今天在建自己小網站時啟動Nginx時,發(fā)現(xiàn)其報下列錯誤,意思是因為80端口被占用導致Nginx啟動失敗,所以本文小編給大家介紹介紹如何解決解決httpd占用80端口導致Nginx啟動不成功報nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    2023-11-11
  • windows下nginx如何操作命令

    windows下nginx如何操作命令

    這篇文章主要介紹了windows下nginx如何操作命令,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • nginx 流量控制以及訪問控制的實現(xiàn)

    nginx 流量控制以及訪問控制的實現(xiàn)

    這篇文章主要介紹了nginx 流量控制以及訪問控制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • nginx 代理后出現(xiàn)503的解決方法

    nginx 代理后出現(xiàn)503的解決方法

    本文主要介紹了nginx 代理后出現(xiàn)503的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Nginx如何限制IP訪問只允許特定域名訪問

    Nginx如何限制IP訪問只允許特定域名訪問

    我們在使用的時候會遇到很多的惡意IP攻擊,這個時候就要用到Nginx 禁止IP訪問了,下面這篇文章主要給大家介紹了關于Nginx如何限制IP訪問只允許特定域名訪問的相關資料,需要的朋友可以參考下
    2022-07-07
  • Nginx stream 配置代理(Nginx TCP/UDP 負載均衡)

    Nginx stream 配置代理(Nginx TCP/UDP 負載均衡)

    本文主要介紹了Nginx stream 配置代理(Nginx TCP/UDP 負載均衡),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • nginx泛域名解析配置教程

    nginx泛域名解析配置教程

    這篇文章主要介紹了nginx泛域名解析配置教程,需要的朋友可以參考下
    2017-01-01
  • Nginx反向代理入門實戰(zhàn)指南

    Nginx反向代理入門實戰(zhàn)指南

    反向代理:反向代理也叫reverse proxy,指的是代理外網用戶的請求到內部的指定web服務器,并將數(shù)據返回給用戶的一種方式,這是用的比較多的一種方式,下面這篇文章主要給大家介紹了關于Nginx反向代理的相關資料,需要的朋友可以參考下
    2021-08-08
  • Nginx下配置301重定向的正確方法例子

    Nginx下配置301重定向的正確方法例子

    這篇文章主要介紹了Nginx下配置301重定向的正確方法例子,本文給出了常用的配置方法例子和正確的配置例子,需要的朋友可以參考下
    2015-03-03
  • Nginx服務器下使用rewrite重寫url以實現(xiàn)偽靜態(tài)的示例

    Nginx服務器下使用rewrite重寫url以實現(xiàn)偽靜態(tài)的示例

    這篇文章主要介紹了Nginx服務器下使用rewrite重寫url以實現(xiàn)偽靜態(tài)的示例,這里舉了Discuz!和WordPress這兩個常用的PHP程序,需要的朋友可以參考下
    2015-12-12

最新評論

醴陵市| 崇义县| 吉林市| 行唐县| 扎赉特旗| 阿拉善右旗| 天气| 上蔡县| 涞水县| 新建县| 娄烦县| 黄浦区| 通山县| 资阳市| 曲松县| 昌黎县| 高青县| 义乌市| 莆田市| 建宁县| 庆元县| 临海市| 宁晋县| 托里县| 中西区| 宣化县| 林芝县| 会同县| 大连市| 普兰县| 高密市| 磐石市| 曲周县| 南昌市| 镇原县| 永修县| 新竹市| 定兴县| 道真| 上蔡县| 曲阳县|