拜访网站时假如拜访途径中短少/,大多数中间件都会主动将途径补全,回来302或301跳转如下图,Location方位的域名会运用Host头的值。
这种状况实际上危险较低,难以构成Host头进犯。可是因为大多缝隙扫描器会将这种状况检测为Host头进犯,为了经过上级查看或各种审阅,大多数甲方单位会要求修正缝隙,完全解决问题。
该跳转途径不是web项目界说的,是中间件主动跳转的,所以不能用编写静态变量的办法修正,web项目中的大局过滤器也无法阻拦。需要在web服务器层面装备才干修正。下面给出几种常见服务器的参阅修正办法,其间如有过错或不当的当地欢迎纠正。
Apache:
办法一:
修正confhttpd.conf文件
修正ServerName为运用的域名,例如
ServerName www.domain.com:80
增加下列行
UseCanonicalName On
重启Apache即可。
修正成功的话会看到,服务器端将会运用设定好的ServerName。
参数解说:
办法二:
修正confhttpd.conf文件
参阅以下装备增加:
NameVirtualHost 192.168.0.16
192.168.0.16>
ServerName 192.168.0.16
Order Allow,Deny
Deny from all
192.168.0.16>
DocumentRoot "C:www"
ServerName www.test.com
重启Apache即可。
效果:
回绝直接经过192.168.0.16这个IP的任何拜访恳求,这时假如你用192.168.0.16拜访,会提示回绝拜访。仅答应经过www.test.com这个域名拜访,主目录指向C:www
办法三:
修正confhttpd.conf文件
找到”#LoadModule rewrite_module modules/mod_rewrite.so”去除前面的”#”号
增加相似以下装备:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^192.168.0.16$ [NC]
RewriteRule ^(.*)$ /error.html
重启Apache即可。
效果:
当HOST头不是192.168.0.16时,重定向到过错页面。
Nginx:
办法一:
修正nginx.conf
增加一个默许server,当host头被修正匹配不到server时会跳到该默许server,该默许server直接回来403过错。
比如如下:
server {
listen 8888 default;
server_name _;
location / {
return 403;
}
}
重启nginx即可。
办法二:
修正nginx.conf
在方针server增加检测规矩,参阅以下标红装备:
server {
server_name 192.168.0.171;
listen 8888;
if ($http_Host !~*^192.168.0.171:8888$)
{
return 403;
}
include /etc/nginx/default.d/*.conf;
location / {
root /www/dvwa;
index index.php index.html index.htm;
}
}
重启nginx即可。
Tomcat:
修正tomcatconfserver.xml
找到如下方位:
将Host里的name修正为静态的域名,如下:
[1] [2] 黑客接单网