因为业主方那边没有域名可以提供,然后又被公安扫出了 “域名访问限制不严格”的漏洞,所以被迫要搞一个只允许使用指定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_REQOptions FollowSymLinks ExecCGIAllowOverride AllOrder deny,allow<RequireAll>Require all grantedRequire env BAD_REQ</RequireAll></Directory></VirtualHost>
这样子就能确保只能用“你的IP地址”访问网站啦~
