naxsi: NGINX 防止 XSS 和 SQL 注入模块
安装
您可以在任何基于 RHEL 的发行版中安装此模块,包括但不限于:
- RedHat Enterprise Linux 7、8、9 和 10
- CentOS 7、8、9
- AlmaLinux 8、9
- Rocky Linux 8、9
- Amazon Linux 2 和 Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-naxsi
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-naxsi
通过在 /etc/nginx/nginx.conf 的顶部添加以下内容来启用该模块:
load_module modules/ngx_http_naxsi_module.so;
本文档描述了 nginx-module-naxsi v1.6,于 2023 年 11 月 28 日发布。

什么是 Naxsi?
NAXSI 意味着 Nginx 防止 XSS 和 SQL 注入。
从技术上讲,它是一个第三方 nginx 模块,作为许多类 UNIX 平台的包提供。默认情况下,该模块读取一小部分简单(且可读)的规则,包含 99% 与网站漏洞相关的已知模式。例如,<、| 或 drop 不应是 URI 的一部分。
由于这些模式非常简单,它们可能会匹配合法查询,因此 Naxsi 的管理员有责任添加特定规则以将合法行为列入白名单。管理员可以通过分析 nginx 的错误日志手动添加白名单,或者(推荐)通过一个密集的自动学习阶段启动项目,该阶段将自动生成与网站行为相关的白名单规则。
简而言之,Naxsi 的行为类似于默认情况下的 DROP 防火墙,唯一的任务是为目标网站添加所需的 ACCEPT 规则,以确保其正常工作。
为什么它不同?
与大多数 Web 应用防火墙不同,Naxsi 不依赖于像杀毒软件那样的签名库,因此无法通过“未知”攻击模式来规避。 Naxsi 是 自由软件(自由的意义)并且是免费的(免费啤酒的意义)。
它运行在什么上?
Naxsi 应该与任何 nginx 版本兼容。
它依赖于 libpcre 来支持正则表达式,并且据报道在 NetBSD、FreeBSD、OpenBSD、Debian、Ubuntu 和 CentOS 上运行良好。
为什么使用这个仓库
原始项目(非官方)已被放弃,但您可以在这里完全请求支持,因为我愿意作为最后一位开发者继续维护该项目。
文档
支持
您可以在这里或在原始仓库 https://github.com/nbs-system/naxsi 请求有关 NAXSI 的支持。
未来计划
- 通过 py3 恢复 nxapi
- 创建一个简单的工具来创建规则并测试它们
GitHub
您可以在 nginx-module-naxsi 的 GitHub 仓库 中找到有关此模块的其他配置提示和文档。