之前小编曾经写过两篇关于 WordPress 防黑的教程,分别是 《WordPress 网站终极防黑手册,全方位保护网站安全 (一) 》以及 《WordPress 网站终极防黑手册,全方位保护网站安全 (二) 》。其实在第一篇防黑教程中小编提到过 WordPress 爆路径的问题,并且给出了隐藏 WordPress 程序路径的方法。但是昨天小编在研究 WordPress 链接重写时发现另一个 WordPress 的程序路径泄露 bug,如下图:
如上图所示,如果目标站是 WordPress 搭建的网站,我们只要访问 http://目标站.com/?robots=1 则会看见如上所示的,WordPress 系统生成的默认的 robots.txt 文件。而该内容信息则是
User-agent: * Disallow: /WordPress 系统所在目录/wp-admin/ Disallow: /WordPress 系统所在目录/wp-includes/
这样也就暴露了 WordPress 程序所在目录,可以被黑客利用来进一步对网站实施攻击。解决方法很简单只要在主题的 functions.php 文件中加入以下代码即可:(感谢 @源码集合 的提醒,代码已更新。)
//解决 robots 爆路径 $bots = $_GET['robots']; if (!$bots){} else { echo '<head><meta http-equiv="Content-Type" content="text/html; charset=utf8"/></head>'; echo '请勿试图攻击本站!'; exit; }
至于怕爬虫抓取了系统的 php 文件可以在 robots.txt 里加入以下代码:
Disallow: /*.php$
另外 WordPress 还有个泄露当前系统版本号的 bug,只需要访问以下链接:
http://目标站.com/?rss=feed2
则会在该页面看到如下内容:
在该页面可以看到当前 WordPress 系统的版本号,这样黑客就可以利用已知的漏洞来对网站进行攻击,修复方法,只需要在当前 WordPress 主题的 functions.php 文件加入以下代码:
//去除版本信息 function wxd_remove_version() { return ''; } add_filter('the_generator', 'wxd_remove_version');
这样即可防止 WordPress 的 feed 页面泄露系统信息了。