nginx naxsi 模块

我请教下,nginx naxsi 模块
最新回答
繁花晕染

2026-10-24 18:51:08

上周项目组的伙伴在灰度访问项目时,发现发送不了消息了。排查各个请求发现有请求被ng拦截了。

于是找到ng拦截日志,路径在ng配置的error日志中,默认在nginx根目录下的log目录下的error.log

如下:

那么我们就知道这个日志表明:该uri请求违反了id=11的naxsi规则,被拦截了。那么id=11的规则是什么呢?让我们了解下naxsi定义的规则,配置在ng的http中规则文件:

5、匹配区域

那么 @MainRule "msg:unknown content-type" id:11; 就是请求违反的规则,不知名的内容类型。从浏览器此请求header看,它的content-type为text/plain.

对比生产其他ng配置,发现其在naxsi的白名单中放过了id11,故可正常运行。 那么,我们再灰度环境配置中,增加此白名单即可解决。 让我们来看看,如何配置naxsi的白名单。

其中wl 单独匹配放过某项规则,如:

mz:MATCHZONE 配合wl规则,制定对应匹配区域规则,区域包括: URL, ARGS, HEADERS, BODY.

示例:url为/foo 请求放过BODY请求中参数名中的规则1310,1311

备注:增加|NAME标示对应目标为参数名,而非参数值。

更多示例,可参考