wordpress解决360网站安全提示本地路径泄漏另类方法
作者:秋了秋 发表时间:2014年07月24日
你的网站安全度高吗?你的wordpress够安全吗?快用360网站安全扫描一下就知道了~注意:此不是打广告,我与360没有任何关系~可是这个确实很好用。如果扫过的人就会发现,wordpress有几个本地路径泄漏漏洞是没修复的。具体类似于下图:
之所以出现这些漏洞问题是因为如果黑客直接输入这样的网址://netblog.cn/wp-includes/user.php
将会出现不能访问并且报错的现象:Fatal error: Call to undefined function add_filter() in /home/vhosts/netblog.cn/wp-includes/user.php on line 71。那么你的服务器路径就完全暴漏出来了,那对于黑客来说就明显降低了服务器攻击门槛。
修复这样的漏洞很简单,360网站安全有文档说明:
关于此漏洞的修复方案如下:
如果WEB应用程序自带错误处理/管理系统,请确保功能开启;否则按语言、环境,分别进行处理:
2、如果是IIS 并且是 支持aspx的环境,可以在网站根目录新建web.config文件(存在该文件则直接修改),或者可以参考这里:
http://webscan.360.cn/protect/index/domain/netblog.cn
PS:《360网站安全检测》会去猜测敏感文件,如果您被报此漏洞,但又确实不存在提示的文件或路径的,只要关闭服务器的显示报错即可。 |
很明显对于用虚拟主机的人来说除了被我标注为红色的之外,其它做法都不行的,那我们就用红色标注的那行修复,具体就是按照网址给出的路径找到这些页面,并在每一个这种页面第一行加上<?php ini_set('display_errors', 0); ?>这段代码就可以了,这样360再次检测的时候将不会有提示。但是服务器依然会有err_log日志产生,而且时间久了,该文档体积会越来越大,占用服务器空间。所以彻底的解决方案还要再加一行,合起来即为:
<?php ini_set('display_errors', 0);?><?php if (function_exists('get_header')) { get_header();}else{header("Location: http://" . $_SERVER['HTTP_HOST'] . "");exit;}; ?>
即,将错误提示巧妙地转向网站首页,这样服务器也不会报错了。
可有的时候会出现360网站安全文档里面的PS段,即,明明不存在该页面,但它却报该页面泄露本地路径。我就遇到过,报//netblog.cn/vote.php安全漏洞,可是wordpress根目录是没有vote.php文件的,既然它那么喜欢没有的页面,那就给个另类方法,在根目录创建一个vote.php文档,里面放空或者加入上面的那段代码,那么它再次检测的时候就不会报错了~