Cookie防篡改
来自SEnginx
目录 |
Cookie防篡改
概要
Cookie Poisoning模块能监控服务器发出的Set-Cookie头以及设置的cookie值,如果cookie的值在客户端被修改,则此模块会检测出修改,并执行动作
此模块依赖于session模块,因此需要开启session支持。
命令
cookie_poisoning
语法 | cookie_poisoning on/off; |
默认值 | off |
上下文 | Location |
在某个Location上开启cookie防篡改功能
举例:
server { session on; ... location / { cookie_poisoning on; ... } }
cookie_poisoning_action
语法 | cookie_poisoning_action block/pass/remove/blacklist,num; |
默认值 | block |
上下文 | Location |
指定发现cookie被篡改时执行的动作
支持的动作有:
- block, 阻断
- pass, 放行
- remove, 删除被篡改的cookie值
- blacklist, 当阻断达到一定次数时,将此session加入黑名单
举例:
cookie_poisoning_action block; //阻断 cookie_poisoning_action remove; //移除cookie cookie_poisoning_action blacklist,5; //5次阻断后,加入黑名单
cookie_poisoning_log
语法 | cookie_poisoning_log on/off; |
默认值 | off |
上下文 | Location |
开启或关闭log功能,如果开启,则在发现攻击时,此模块会向error log中写入log
举例:
cookie_poisoning_log on;
cookie_poisoning_whitelist
语法 | cookie_poisoning_whitelist ua_var_name=UA whitlist ip_var_name=IP whitelist ip_var_value=value; |
默认值 | - |
上下文 | Location |
有效版本 | 1.5.11及以后版本 |
此命令设置引用的全局IP白名单和User-Agent白名单,其中,IP白名单是和nginx的geo模块配合使用
例如:
#定义IP白名单 geo $ip_wl { ranges; default 0; 127.0.0.1-127.0.0.1 1; 3.0.0.1-3.2.1.254 1; } #定义UA白名单 whitelist_ua $ua_wl { "autotest" ".*\.test\.com"; } server { location { cookie_poisoning_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1; } }