1

WordPress后台被暴力破解,如何防御?(总结版)

Posted by 撒得一地 on 2016年1月9日 in wordpress笔记

Wordpress作为一款拥有巨大用户量的开源博客系统,其安全性毋庸置疑。除了部分插件导致的注入跨站、文件上传等问题外,本身没有太大问题,最主要的问题就是后台可以进行暴力破解。前一阵子,查阅访问日志,发现一些国外恶意ip大量POST请求登陆,附上部分日志:

195.154.199.128 - - [07/Jan/2016:11:01:43 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:44 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:45 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:46 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:48 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:50 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

195.154.199.128 - - [07/Jan/2016:11:01:51 +0800] "POST /wp-login.php HTTP/1.1" 200 3353

... 

查阅ip地址来自法国。恶意IP大量POST请求不仅使得服务器不堪重负,访问极慢,而且危险性极大。万一后台被攻破,后果可想而知。当时的第一做法是将这个ip加入黑名单,直接写入iptables。虽然写入iptables能立刻禁止这个ip的访问,但是并不能杜绝源头。那么如何较根本的解决Wordpress暴力破解问题,我总结了以下几点。

1.加大用户名、密码难度

用户名最好不要使用admin、root、admin123等形式,这种用户名很容易被黑客破解。用户名最好使用英文、数字、下划线等组成。同时密码也一样,切忌使用123456、password、abcdefg等弱口令。Wordpress下修改用户名或密码sql语句如下:

//修改用户名
UPDATE wp_users SET user_login = 'newuser' WHERE ID = adminid;

其中:newuser为你的新用户名,adminid为wp_users表管理员那条数据记录的主键ID。

//修改密码
UPDATE wp_users SET user_pass = password('newpassword') WHERE ID = adminid;

其中:newpassword为你的新密码,当密码存入数据库时用password形式进行密文加密后保存。上面的wp修改为你自己的表前缀。

2.隐藏后台登陆路径

隐藏登陆路径名后,使得黑客无法轻易登陆。先附上操作方法及代码。

在主题的functions.php中加入如下代码:

add_action('login_enqueue_scripts','cracker');

function cracker(){

if($_GET['access']!= '1111') header('Location:http://www.baidu.com/');

}

上面请自行更改1111为你自己要设定的密码,也可以将access修改为其他参数名,这样在登陆时访问地址就要加上参数及参数设定值。可以把header后面的路径改为你自己的博客路径。

这样参数设定好后当我们要登陆后台需要使用这样的方式:http://www.waitalone.cn/wp-login.php?access=您的密码。

上面的例子中,当黑客直接访问http://www.xxx.com/wp-login.php后台尝试登陆时,会直接跳转到其它地址。因为黑客很难猜测出你后面的验证参数是什么,所以这种方式就很有效的隐藏了登陆地址。

上面的代码参考了:http://www.waitalone.cn/wordpress-adminpage-deny-brute-force.html。

3.将IP地址写入黑名单

当上面的步骤失去作用时,就要考虑屏蔽ip了,禁止特定ip访问我们的站点。屏蔽ip的方法常用有这几种方法:1.ip写入iptables 2.写入.htacess文件。3.在服务端php文件中进行屏蔽。

这里介绍写入.htacess文件的方法:

#禁止单个ip语法
order deny,allow
allow from all
deny from 192.168.1.1

语法分析:order deny,allow 是先检查禁止设定,没有禁止的全部允许;allow from all表示全部允许;deny from 是再次筛选,拒绝IP为192.168.1.1的用户,所以当三条条语句都执行完就是只拒绝IP为192.168.1.1的用户。

禁止ip段

假如你需要禁止:121.18.126.0~121.18.126.255这个段的IP时,需要做如下操作

order deny,allow
allow from all
deny from 121.128.126

4.安装Wordpress插件防御

当你实在不想折腾上面的几个步骤时,那么就直接在后台安装插件吧,这种方法方便快捷又省事。该类的插件很多,网上介绍的比较多的一款是:Wordfence Security。你只要在后台搜索插件进行安装,然后开启插件即可。

以上推荐的几种方法,大家可以根据个人情况任意选择几种进行相应的防御。

本文地址:http://coderschool.cn/1485.html,转载请注明出处。

标签:

上一篇:

下一篇:

相关推荐

1 Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 8 = ?

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.