这几天有人一直在爆破后台,先吐槽这个人可能有点傻,爆破后台连用户名都猜不对,看看前台文章作者先猜猜就行了嘛。。
隐藏wp-admin有几种方法:
1.限定访问wp-admin文件夹的地址
在wp-admin目录下新建一个.htaccess文件:
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "acess verify" AuthType Basic order deny,allow deny from all allow from xx.xx.xx.xx
写自己想要的ip就会,就算进不来了,进服务器改也很安全。
2.修改后台文件夹的名字在wordpress文件夹下建一个.htaccess:
NAMEYOUCHANGE的是要改的文件夹名字
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} wp-admin/ RewriteCond %{QUERY_STRING}!后面可以设置一个密码 RewriteRule .*\.php [F,L] RewriteCond %{QUERY_STRING}!与上面的那个密码相同 RewriteRule ^NAMEYOUCHANGE/(.*) wp-admin/$1?%{QUERY_STRING}&与上面的那个密码相同[L]
然后三个文件里的wp-admin要改成上面修改的文件夹的名字:
wp-admin/includes/media.php wp-includes/script-loader.php wp-includes/link-template.php
访问的话访问http://domain/NAMEYOUCHANGE?你改的密码
3.新建一个较复杂的文件夹比如/newfloder/
在目录下新建php文件比如aaa.php,内容为:
<?php $SecretCode="RandomStringHere"; //请把 RandomStringHere 改成自己的随机字符串 setcookie("SecureAdminSession",$SecretCode,0,"/"); header("Location: /wp-admin/"); //请把 /wp-admin/ 你要进入网页的地址(如后台网址),可以使用绝对地址 ?>
接下来在新建的.htaccess中:
RewriteEngine On RewriteCond %{REQUEST_URI} ^/wp-admin/ RewriteCond %{HTTP_COOKIE} !SecureAdminSession=RandomStringHere RewriteRule .* - [L,F]
这样只有访问http://domain/newfloder/aaa.php才能跳转wp-admin,否则404。
问题:写完htaccess后发现不起作用。
解决方法:网上查了是httpd.conf的问题,AllowOverride的None改成All了,AccessFileName后面改成.htaccess,AllowOverride所在的Distory改成web根目录了还是不行,然后改成wp-admin的物理路径就解决了。
另外:上面修改后台地址的同时,不要忘记修改wp-login.php的存在,不然就是白设置前面的,比如我的登录页面为test.php,那么首先将原wp-login.php里所有wp-login.php修改为test.php,再将/wp-includes/general-template.php里的$login_url的wp-login.php修改为test.php。这样基本上能保证不会通过登录页面进行爆破。当然也可以通过添加验证码、人机识别等技术来防止爆破,但是我觉得,如果连登录页面都找不到,那就算有账号密码了都没办法登录后台。
还有就是有黑客通过xmlrpc.php文件绕过验证,爆破账户密码,直接删掉xmlrpc.php就问题不大了。
thx a lot.