建站这一年多来,网站疯狂遭受到暴力破解和各种攻击,我在自己网站上设置了一旦用户登录出错就会发邮件告知我的钩子,几乎每天都有国外奇奇怪怪的IP暴力破解我的登录密码,有时候邮箱一天要收到10多页提示我网站登录错误的邮件,而且很明显的能分辨出登录密码就是那种密码字典里的密码,有一点时间不胜其扰,不过从一个建站小白到现在也有快两年的时间了,也总结了一些应对暴力破解和DDOS攻击的几种方法。

1 设置特殊的、复杂的密码

从哲学角度上来说,内因决定事物的本质。所以,对于网站管理员的登录密码来说,要尽可能的特殊、复杂以及独一无二,千万不要使用生日、常规数字的简单密码组合,这种极有可能被那些密码本所包含导致登录密码被破解。

2 修改WordPress网站登录的原始链接

WordPress默认的登录链接为http://www.xxx.com/wp-login.php ,如果我们不修改默认的登录链接,破解者会很轻易的知道登录链接从而发起暴力破解。
我们可以在function.php中加入以下的代码,比如讲登录链接修改为http://www.xxx.com/wp-login.php?FuckYou=Mother ,那么可以使用以下代码:

add_action('login_enqueue_scripts','login_protection');  
function login_protection(){  
    if($_GET['FuckYou'] != 'Mother')header('Location: https://www.xxxxx.com/');  
}

3 禁用xmlrpc

如果你没有通过第三方客户端发表文章的需求,那么建议将xmprpc.php禁用。

首先你可以在function.php中使用以下代码禁用xmlrpc:

// 禁用XML-RPC接口,禁止访问xmlrpc.php,防止暴力破解
add_filter('xmlrpc_enabled', '__return_false');

如果觉得这种方式不保险,最好的方式是删除网站根目录下的xmlrpc.php文件或者在系统中禁止任何人可读,即对xmlrpc.php文件使用000权限。

4 使用安全插件All in one wp security

这个插件是我目前在使用的一个针对于WordPress的安全插件,从用户注册、用户登录、用户账号、数据库安全、防火墙、暴力破解等等方面都提供了强力的支持。

比如说如果一个IP在规定的时间内登录失败多少次就会被锁定多长时间,还有IP访问黑名单,等等,如果有一个IP或者固定的IP一直在不断地尝试登录,就可以直接让他进入小黑屋。

5 在登录界面使用Google reCaptcha

Google reCaptcha判断当前操作人员是不是机器人的利器,会有很多奇奇怪怪连真人都会选错的图片,这也是目前国外在登录验证方面经常使用的,毕竟Google的安全认证技术摆在那里,就让那一些暴力破解的脚本试一试Google的变态。