欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx lua防火墻防SQL注入配置

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

一、防火墻配置

二、下載安裝文件

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

# 默認(rèn)值是`/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中的關(guān)鍵字,出現(xiàn)攔截頁面表示配置成功, 攔截參數(shù)在/usr/local/nginx/conf/ngx_lua_waf/wafconf/url文件

2. 測試post關(guān)鍵字

六、準(zhǔn)備演示環(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. 服務(wù)端演示代碼,模擬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代理設(shè)置

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表單中的關(guān)鍵字實現(xiàn)攔截)。

# 設(shè)置SQL注入的關(guān)鍵參數(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ù)以后的效果

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

相關(guān)文章

  • angular6+springboot實現(xiàn)前后分離nginx配置

    angular6+springboot實現(xiàn)前后分離nginx配置

    這篇文章主要介紹了angular6+springboot實現(xiàn)前后分離nginx配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 使用Nginx配置文件服務(wù)器方式

    使用Nginx配置文件服務(wù)器方式

    這篇文章主要介紹了使用Nginx配置文件服務(wù)器方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Nginx可視化管理軟件NginxProxyManager的使用

    Nginx可視化管理軟件NginxProxyManager的使用

    NginxProxyManager是一款基于Nginx的開源可視化管理工具,支持通過WebUI簡易管理Nginx服務(wù)器,支持DockerCompose快速部署在Linux、Windows、macOS上,提供SSL證書獲取、多代理管理等功能,感興趣的可以了解一下
    2024-11-11
  • Nginx設(shè)置日志打印post請求參數(shù)的方法

    Nginx設(shè)置日志打印post請求參數(shù)的方法

    這篇文章主要介紹了Nginx設(shè)置日志打印post請求參數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • nginx配置IP白名單的詳細(xì)步驟

    nginx配置IP白名單的詳細(xì)步驟

    在日常運維工作中會碰到這樣的需求,設(shè)置網(wǎng)站訪問只對某些ip開放,其他ip的客戶端都不能訪問,下面這篇文章主要給大家介紹了關(guān)于nginx配置IP白名單的詳細(xì)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Nginx 分發(fā)策略的實現(xiàn)

    Nginx 分發(fā)策略的實現(xiàn)

    分發(fā)策略是將客戶端請求根據(jù)一定的規(guī)則或算法,可以分配到不同的后端服務(wù)器上,本文就來介紹一下Nginx分發(fā)策略的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • 使用nginx如何實現(xiàn)請求轉(zhuǎn)發(fā)的功能

    使用nginx如何實現(xiàn)請求轉(zhuǎn)發(fā)的功能

    文章介紹了如何配置Nginx作為反向代理服務(wù)器,實現(xiàn)請求轉(zhuǎn)發(fā)和負(fù)載均衡,并進行了靜態(tài)和動態(tài)內(nèi)容分離,主要步驟包括修改Nginx默認(rèn)端口、配置轉(zhuǎn)發(fā)規(guī)則和修改配置文件
    2024-12-12
  • Linux中Nginx反向代理如何實現(xiàn)不同路徑訪問不同的頁面

    Linux中Nginx反向代理如何實現(xiàn)不同路徑訪問不同的頁面

    這篇文章主要介紹了Linux中Nginx反向代理如何實現(xiàn)不同路徑訪問不同的頁面方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx實現(xiàn)集群的負(fù)載均衡配置過程解析

    Nginx實現(xiàn)集群的負(fù)載均衡配置過程解析

    這篇文章主要為大家詳細(xì)介紹了Nginx實現(xiàn)集群的負(fù)載均衡配置過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Nginx單向認(rèn)證的安裝配置方法

    Nginx單向認(rèn)證的安裝配置方法

    這篇文章主要介紹了Nginx單向認(rèn)證的安裝配置方法,需要的朋友可以參考下
    2014-11-11

最新評論