修复建议:
web应用程序应该使用SERVER_NAME而不是host header。
在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。
具体方式:
1.修改server_name
server_name 1.2.3.4 xxx1.tracymc.cn xxx2.tracymc.cn xxx3.tracymc.cn
需要写上外网地址(1.2.3.4)并且对应的域名都写上
2.增加如下配置
if ( $host !~* 'xxx1.tracymc.cn|xxx2.tracymc.cn|xxx3.tracymc.cn|192.168.1.1|192.168.1.2|192.168.1.3|192.168.1.4' ) {
return 400;
}
对应的域名都写上,如果负载均衡的话需要把内网地址都写上
Be First to Comment