服务器 
首页 > 服务器 > 浏览文章

对nginx-naxsi白名单规则详解

(编辑:jimmy 日期: 2024/11/18 浏览:3 次 )

白名单规则语法:

BasicRule wl:ID [negative] [mz:[$URL:target_url]|[match_zone]|[$ARGS_VAR:varname]|[$BODY_VARS:varname]|[$HEADERS_VAR:varname]|[NAME]]

wl:ID (White List ID) 哪些拦截规则会进入白名单 wl:0 把所有拦截规则加入白名单 wl:42 把ID为42的拦截规则加入白名单 wl:42,41,43 把ID为42, 41和43的拦截规则加入白名单 wl:-42 把所有拦截规则加入白名单,除了ID为42的拦截规则

mz:(Match Zones)

ARGS GET的整个参数,如: foo=bar&in=%20 $ARGS_VAR GET参数的参数名, 如:foo=bar&in=%20中的foo和in $ARGS_VAR_X 正则匹配的GET参数的参数名 HEADERS 整个HTTP协议头 $HEADERS_VAR HTTP协议头的名字 $HEADERS_VAR_X 正则匹配的HTTP协议头的名字 BODY POST的整个参数内容 $BODY_VAR POST参数的参数名 $BODY_VAR_X 正则匹配的POST参数的参数名 URL URL("1" cellpadding="1" border="1"> 规则 说明 BasicRule wl:1000; 在本子规则中完全禁用拦截规则#1000。因为没有指定区域,所以全部加入白名单。 BasicRule wl:1000 "mz:$ARGS_VAR:foo";

在全部GET参数名为foo的值中禁用拦截规则#1000

类似http://mike.hi-linux.com/"mz:$URL:/bar|ARGS";

在URL为/bar的GET请求中的参数禁用拦截规则#1000

以下类似请求,均不会过滤:

http://mike.hi-linux.com/bar"mz:ARGS|NAME";

在全部GET请求中对所有参数名(只是名,不包含参数值)中禁用拦截规则#1000

以下请求不会过滤:

http://mike.hi-linux.com/bar"mz:$URL_X:^/upload/(.*).(.*)$|URL";

在全部请求中对符合^/upload/(.*).(.*)$正则规则的URL禁用全部拦截规则

类似http://mike.hi-linux.com/upload/select.db请求不会被过滤(原本会触发#1000拦截规则)。

实战用的白名单规则
# vi naxsi_BasicRule.conf
BasicRule wl:1010,1011 "mz:$ARGS_VAR:rd";
BasicRule wl:1015,1315 "mz:$HEADERS_VAR:cookie";

以上这篇对nginx-naxsi白名单规则详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:Docker部署Laravel应用的实现示例
下一篇:Linux Windows下设置定时执行任务的方法