wl:ID (White List ID) | 哪些攔截規(guī)則會進入白名單 |
wl:0 | 把所有攔截規(guī)則加入白名單 |
wl:42 | 把ID為42的攔截規(guī)則加入白名單 |
wl:42,41,43 | 把ID為42, 41和43的攔截規(guī)則加入白名單 |
wl:-42 | 把所有攔截規(guī)則加入白名單,除了ID為42的攔截規(guī)則 |
mz:(Match Zones)
ARGS | GET的整個參數,如: foo=bar&in=%20 |
$ARGS_VAR | GET參數的參數名, 如:foo=bar&in=%20中的foo和in |
$ARGS_VAR_X | 正則匹配的GET參數的參數名 |
HEADERS | 整個HTTP協(xié)議頭 |
$HEADERS_VAR | HTTP協(xié)議頭的名字 |
$HEADERS_VAR_X | 正則匹配的HTTP協(xié)議頭的名字 |
BODY | POST的整個參數內容 |
$BODY_VAR | POST參數的參數名 |
$BODY_VAR_X | 正則匹配的POST參數的參數名 |
URL | URL(?前的) |
URL_X | 正則匹配的URL(?前的) |
FILE_EXT | 文件名 (POST上傳文件時上傳的文件名) |
白名單配置示例
以規(guī)則#1000為例:規(guī)則#1000是過濾包含select、update、delete、insert等SQL關鍵字的規(guī)則
規(guī)則 | 說明 |
BasicRule wl:1000; | 在本子規(guī)則中完全禁用攔截規(guī)則#1000。因為沒有指定區(qū)域,所以全部加入白名單。 |
BasicRule wl:1000 "mz:$ARGS_VAR:foo"; |
在全部GET參數名為foo的值中禁用攔截規(guī)則#1000 類似http://mike.hi-linux.com/?foo=select * from demo這樣的請示就不會被過濾。 |
BasicRule wl:1000 "mz:$URL:/bar|ARGS"; |
在URL為/bar的GET請求中的參數禁用攔截規(guī)則#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請求中對所有參數名(只是名,不包含參數值)中禁用攔截規(guī)則#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/(.*).(.*)$正則規(guī)則的URL禁用全部攔截規(guī)則 類似http://mike.hi-linux.com/upload/select.db請求不會被過濾(原本會觸發(fā)#1000攔截規(guī)則)。 |
實戰(zhàn)用的白名單規(guī)則 # vi naxsi_BasicRule.conf BasicRule wl:1010,1011 "mz:$ARGS_VAR:rd"; BasicRule wl:1015,1315 "mz:$HEADERS_VAR:cookie";
以上這篇對nginx-naxsi白名單規(guī)則詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。