插件窝 干货文章 Nginx如何通过使用应用程序防火墙模块( WAF)防范Web攻击

Nginx如何通过使用应用程序防火墙模块( WAF)防范Web攻击

Nginx ModSecurity 检测 规则 913    来源:    2025-04-20

Nginx使用WAF防范Web攻击的全面指南

Nginx可以通过集成Web应用程序防火墙(WAF)模块来有效防范各种Web攻击。以下是详细的实现方案:

主要WAF模块选项

1. ModSecurity + Nginx

ModSecurity是最流行的开源WAF之一,可以与Nginx集成:

# 安装依赖
sudo apt-get install libmodsecurity3 libmodsecurity-dev

# 编译Nginx时添加ModSecurity模块
./configure --add-module=/path/to/ModSecurity-nginx
make
make install

配置示例(nginx.conf):

http {
    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;

    server {
        modsecurity on;
        modsecurity_rules_file /etc/nginx/modsec/mywebsite.conf;
    }
}

2. NAXSI (Nginx Anti XSS & SQL Injection)

NAXSI是专为Nginx设计的轻量级WAF:

# 编译安装
./configure --add-module=/path/to/naxsi/naxsi_src
make
make install

配置示例:

http {
    include /etc/nginx/naxsi_core.rules;

    server {
        location / {
            SecRulesEnabled;
            DeniedUrl "/RequestDenied";

            CheckRule "$SQL >= 8" BLOCK;
            CheckRule "$RFI >= 8" BLOCK;
            CheckRule "$TRAVERSAL >= 4" BLOCK;
            CheckRule "$EVADE >= 4" BLOCK;
            CheckRule "$XSS >= 8" BLOCK;
        }
    }
}

关键防护策略

1. SQL注入防护

  • 检测常见的SQL关键字(UNION, SELECT, INSERT等)
  • 检测SQL注释符(--, /* */)
  • 检测特殊字符组合(1=1, ' OR '1'='1)

2. XSS防护

  • 检测