跳转至

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?

NAXSI 意味着 Nginx 防止 XSSSQL 注入

从技术上讲,它是一个第三方 nginx 模块,作为许多类 UNIX 平台的包提供。默认情况下,该模块读取一小部分简单(且可读)的规则,包含 99% 与网站漏洞相关的已知模式。例如,<|drop 不应是 URI 的一部分。

由于这些模式非常简单,它们可能会匹配合法查询,因此 Naxsi 的管理员有责任添加特定规则以将合法行为列入白名单。管理员可以通过分析 nginx 的错误日志手动添加白名单,或者(推荐)通过一个密集的自动学习阶段启动项目,该阶段将自动生成与网站行为相关的白名单规则。

简而言之,Naxsi 的行为类似于默认情况下的 DROP 防火墙,唯一的任务是为目标网站添加所需的 ACCEPT 规则,以确保其正常工作。

为什么它不同?

与大多数 Web 应用防火墙不同,Naxsi 不依赖于像杀毒软件那样的签名库,因此无法通过“未知”攻击模式来规避。 Naxsi 是 自由软件(自由的意义)并且是免费的(免费啤酒的意义)。

它运行在什么上?

Naxsi 应该与任何 nginx 版本兼容。

它依赖于 libpcre 来支持正则表达式,并且据报道在 NetBSD、FreeBSD、OpenBSD、Debian、Ubuntu 和 CentOS 上运行良好。

为什么使用这个仓库

原始项目(非官方)已被放弃,但您可以在这里完全请求支持,因为我愿意作为最后一位开发者继续维护该项目。

文档

docs

支持

您可以在这里或在原始仓库 https://github.com/nbs-system/naxsi 请求有关 NAXSI 的支持。

未来计划

  • 通过 py3 恢复 nxapi
  • 创建一个简单的工具来创建规则并测试它们

GitHub

您可以在 nginx-module-naxsi 的 GitHub 仓库 中找到有关此模块的其他配置提示和文档。