白名单

来自SEnginx
2014年3月29日 (六) 05:31Root (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索

目录

白名单

概要

白名单模块提供了基于User-Agent并带有DNS反查功能的匹配机制,可以在SEnginx中定义白名单,并将白名单应用到不同的安全功能中。命中白名单的请求将会跳过相关安全模块的检查,目前支持白名单的安全模块有:

  • Naxsi
  • Cookie防篡改
  • 网页防篡改
  • HTTP机器人缓解功能

DNS反查,是根据请求的源IP地址,查询DNS服务器获取域名,如果域名和用户定义的正则pattern匹配,则此白名单才命中。此机制是为了防止User-Agent伪造为知名机器人。
可以定义多个白名单并在不用功能上使用。
此模块在SEnginx 1.5.11以及以后的版本中提供。

命令

whitelist_ua

语法 whitelist_ua $variable { ... }
默认值 -
上下文 http

创建user-agent白名单。
示例:

whitelist_ua $ua_wl {
    "baiduspider";
    "googlebot";
}

带有DNS反查功能的例子,需要配置resolver:

resolver 10.5.1.204 ipv6=off;
resolver_timeout 5s;

whitelist_ua $ua_wl_dns {
    "baiduspider" ".*\.baidu\.com";
    "googlebot" ".*\.google\.com";
}

还可以指定忽略大小写匹配:

resolver 10.5.1.204 ipv6=off;
resolver_timeout 5s;

whitelist_ua $ua_wl_dns {
    caseless;
    "baiduspider" ".*\.baidu\.com";
    "googlebot" ".*\.google\.com";
}

定义白名单时设置的变量可以在其他安全模块的命令中使用,也可以在location if中使用(不能在server if中使用),例如:

在cookie防篡改模块使用:
cookie_poisoning_whitelist ua_var_name=ua_wl_dns;

在if中使用
if ($ua_wl_dns) {
    # do something
}
# else 
# do some secure checks

各个安全模块引用白名单的配置,请参考各个模块的文档。

个人工具
名字空间
  • 页面
  • 讨论

变换
操作
导航
其他语言
工具箱