通过Nginx解决“检测到目标URL存在http host头攻击漏洞”
问题:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。解决办法:web应用程序应该使用SERVER_NAME而不是host header。在Apache和Nginx里可以通过设置一个虚拟机来记录所有
·
问题:
为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。
解决办法:
web应用程序应该使用SERVER_NAME而不是host header。在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
有一些省级项目,地市访问时ip往往会进行转换,所以我们要把系统实际ip、地市转换ip都加入到server_name里面。
server {
listen 9000 default;
server_name _;
location / {
return 403;
}
}
server {
listen 9000;
server_name 127.0.0.1 ip1 ip2 域名 域名映射ip (server_name之间以空格分隔);
}
更多推荐
已为社区贡献2条内容
所有评论(0)