对nginx-naxsi白名单规则详解
白名单规则语法:BasicRule wl:ID ||[$ARGS_VAR:varname]|[$BODY_VARS:varname]|[$HEADERS_VAR:varname]|]
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)
ARGSGET的整个参数,如: foo=bar&in=%20$ARGS_VARGET参数的参数名, 如:foo=bar&in=%20中的foo和in$ARGS_VAR_X正则匹配的GET参数的参数名HEADERS整个HTTP协议头$HEADERS_VARHTTP协议头的名字$HEADERS_VAR_X正则匹配的HTTP协议头的名字BODYPOST的整个参数内容$BODY_VARPOST参数的参数名$BODY_VAR_X正则匹配的POST参数的参数名URLURL(?前的)URL_X正则匹配的URL(?前的)FILE_EXT文件名 (POST上传文件时上传的文件名)白名单配置示例
以规则#1000为例:规则#1000是过滤包含select、update、delete、insert等SQL关键字的规则
规则说明BasicRule wl:1000;在本子规则中完全禁用拦截规则#1000。因为没有指定区域,所以全部加入白名单。BasicRule wl:1000 "mz:$ARGS_VAR:foo";在全部GET参数名为foo的值中禁用拦截规则#1000
类似http://mike.hi-linux.com/?foo=select * from demo这样的请示就不会被过滤。
BasicRule wl:1000 "mz:$URL:/bar|ARGS";在URL为/bar的GET请求中的参数禁用拦截规则#1000
以下类似请求,均不会过滤:
http://mike.hi-linux.com/bar?my=select * from demohttp://mike.hi-linux.com/bar?from=weibo
BasicRule wl:1000 "mz:ARGS|NAME";在全部GET请求中对所有参数名(只是名,不包含参数值)中禁用拦截规则#1000
以下请求不会过滤:
http://mike.hi-linux.com/bar?from=weibo
以下请求会过滤:
http://mike.hi-linux.com/bar?foo=select
因为select属于参数值,不在白名单范围内。
BasicRule wl:0 "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白名单规则详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_28710983/article/details/82347022
文档来源:服务器之家http://www.zzvips.com/article/47739.html
页:
[1]