这篇文章主要介绍了nginx-naxsi白名单规则的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
白名单规则语法:
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(?前的) |
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白名单规则的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。