昨日小编与 2zzt 的大叔在群中闲聊时发现很多 WordPress 站长都很不注意网站的信息安全,各种漏洞、各种信息泄露。接下来小编就来教大家为自己的 WordPress 修复一些常见的 bug,预防黑客。

首先是 WordPress 的全版本通杀爆绝对路径漏洞:

1 、/wp-includes/registration-functions.php

2 、/wp-includes/user.php

3 、/wp-admin/admin-functions.php

4 、/wp-admin/upgrade-functions.php

只要直接访问以上文件或者访问当前 WordPress 网站的主题目录下任意 php 文件都会爆出网站的绝对路径,就连 WordPress 官方的主题 twentytwelve 也不例外。

解决方法一、在以上文件的的头部 <?php 后加入:

error_reporting(0);

解决方法二、直接修改 php.ini 屏蔽 php 报错。 (参考:WordPress 防黑教程之预防全版本通杀爆绝对路径漏洞)

保护 WordPress 后台不被直接访问,防止直接 post 登录 WordPress 后台。

早在 v7v3 刚上线的时候小编就写过一篇隐藏 WordPress 后台的文章 《WordPress 防黑教程之保护登录文件 wp-login.php 》此方法只是使用 $_GET 对 wp-login.php 做一个访问的障眼法而已。其实仔细分析下 WordPress 登录页面代码不难发现 WordPress 是以 post 的方式来提交登陆参数的,如下图:

也就是说我们可以不用访问 wp-login.php 文件,而是直接通过 post 递交参数给 wp-login.php 来直接登录网站后台,那么之前小编所提到的 $_GET 对 wp-login.php 做的访问限制就形同虚设,那么该如何来有效的防止 WordPress 的登录文件不被直接访问而且不能以常规的 post 方式来登录网站后台呢?

第一步:我们登录后台进入到常规选项:在 WordPress 地址 (URL) 这一栏加上/v7v3 如下图:

第二步:我们在网站根目录下新建一个名为 v7v3 的目录,然后将除了 index.php 、 robots.txt 以及.htaccess 之外的所有网站文件移至 v7v3 目录 (登录变为 weixiaoduo.com/v7v3/wp-login.php) 。

第三步:打开 index.php 并将

require('./wp-blog-header.php');

修改为:

require('./v7v3/wp-blog-header.php');

这样一来 WordPress 的后台地址以及登录 post 提交参数的地址都随着 WordPress 系统文件的移动而改变了,再配合小编写的 $_GET 访问限制方法就可以达到很好的防黑效果。

(PS:这只是前半篇文章,请大家期待后半篇文章!) 《 WordPress 网站终极防黑手册,全方位保护网站安全 (二) 》