因为业主方那边没有域名可以提供,然后又被公安扫出了 “域名访问限制不严格”的漏洞,所以被迫要搞一个只允许使用指定IP地址访问站点的办法。
情况1:开发人员在开发中写死域名
Host
以后修改比较麻烦,所以采用request.getHeader("Host");
方式获取Host情况2(XSS攻击):有些网站会用Http的
Host
头来拼接资源路径,比如<link rel="stylesheet" type="text/css" href="http://{$_SERVER['HTTP_HOST']}?id=111111" />
。此时我修改了Host
,并在本地假设一个对应Host
的服务器返回恶意的资源,就会被这些网站载入。
虽然我的网站都使用的 IP
访问,可以确定即使被篡改也没啥关系,但是为了响应公安,所以还是得补上这个漏洞。通过编辑 conf/extra/httpd-vhosts.conf
文件:
<VirtualHost *:99>
DocumentRoot "${INSTDIR}/wwwroot/reform_declare/public"
ServerName 你的IP地址
<Directory "${INSTDIR}/wwwroot/reform_declare/public">
# 如果请求的HOST和你的IP地址不匹配,就设置BAD_REQ变量
# 注意,如果要使用正则表达式,不要用双引号包裹
# 如果仅仅是字符串,可以直接双引号包裹
SetEnvIfNoCase Host "你的IP地址" BAD_REQ
Options FollowSymLinks ExecCGI
AllowOverride All
Order deny,allow
<RequireAll>
Require all granted
Require env BAD_REQ
</RequireAll>
</Directory>
</VirtualHost>
这样子就能确保只能用“你的IP地址”访问网站啦~