VSB9.4.1中禁用默认域名访问注意事项
2016-08-03 00:00
VSB9.4.1中禁用默认域名访问注意事项
2016-08-03
根据网站安全需要,用户服务器环境中的默认域名须禁止访问。禁用方法参照《BDQT451安全检测服务单.doc》
在实际操作中发现,VSB9单机部署环境,使用以上方法禁用默认域名访问无效。
测试分析:
VSB WEB端 使用以上方法禁用默认域名访问有效;
VSB 9.4.0及之前版本使用以上方法禁用默认域名访问有效;
问题定位到VSB 9.4.1以后版本(包括暂未发布的9.5.0),使用以上方法禁用默认域名访问无效。查看该版本中的httpd.conf配置文件,发现较之前版本新增了以下配置:
#禁止除GET POST HEAD以外的请求;
<Location />
<LimitExcept GET HEAD POST>
Order allow,deny
Deny from all
</LimitExcept>
</Location>
尝试将这段配置注释掉,再测试禁用默认域名访问。此时测试成功。
通过查找资料了解,这段配置的作用为禁止除GET POST HEAD以外的请求,以提高网站安全性。阅读资料:
解决方法:
修改httpd.conf配置文件,将LimitExcept写到</Directory>指令中,配置如下:
<Directory />
<LimitExcept GET HEAD POST>
Order allow,deny
Deny from all
</LimitExcept>
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
测试默认域名已被禁用,除GET HEAD POST以外的HTTP请求方法也已被禁用。问题解决!
原因说明:
Apache中配置段的合并的顺序是:
<Directory>
<DirectoryMatch> (和<Directory ~>)
<Files>和<FilesMatch>同时处理;
<Location>和<LocationMatch>同时处理;
<Location>指令是在最后执行的,所以在配置文件中,我们虽然在<Directory>指令中禁用了默认域名访问,但最后执行<Location>指令判断时,此处是允许GET HEAD POST三种HTTP方法请求访问的。
阅读资料:http://www.php100.com/html/webkaifa/apache/2009/0418/1193.html