让你的WordPress更安全(更改wp-admin目录名)

关于wp-admin目录的安全性问题,一直有人提出。WordPress在安装时候默认用户名为“admin”,而且管理目录永远都是wp-admin,所以对于黑客来说,他省了两个步骤来搞定一个WordPress博客。虽然这样新闻很少听到。但防患于未然总不是坏事。

下面来说说如何更改wp-admin目录名:

修改wp-admin目录,将其换成其他名字,比如“bssn-org”(下面就以这个目录名为例说一下)。

首先修改WordPress目录下的.htaccess文件,增加:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} wp-admin/
RewriteCond %{QUERY_STRING} !这里来个复杂字符串(数字英文横杠下划线组成)
RewriteRule .*\.php [F,L]
RewriteCond %{QUERY_STRING} !与上面的那个密码相同
RewriteRule ^bssn-org/(.*) wp-admin/$1?%{QUERY_STRING}&与上面的那个密码相同 [L]

这个.htaccess实现禁止访问wp-admin下的所有.php文件,访问bssn.org/bssn-org的话会直接替换成bssn.org/wp-admin下的对应文件。也就是说访问bssn.org/bssn-org与访问wp-admin的结果是一样的,但是访问wp-admin则行不通。

这里,也就是完成了wp-admin目录的更名。步骤也比较简单,只需要修改根目录下的.htaccess就可以了。

但是如果你死活想访问wp-admin的话,这样来:
http://youblogurl/wp-admin?你设置的那个密码
假如你的密码是123,那么http://youblogurl/wp-admin?123 你便可以访问wp-admin目录

更名完成,但是会有一些问题需要修改部分文件。因为wp-admin被禁止访问,而部分功能还直接调用wp-admin的.php文件。这导致上传功能将不能使用;自动保存,自定义字段都变成半残废。


需要修改的文件:
wp-admin/includes/media.php
wp-includes/script-loader.php
将两个文件中的wp-admin全部替换为bssn-org

另外需要修改wp-includes/link-template.php的第470行与500行,将wp-admin换成bssn-org,这样edit链接与comments编辑链接将继续有效。

十分重要的提醒

  1. 如果你使用的类似wp-cache等缓存插件,一定要将你的新目录名添加到缓存过滤规则里,不然后台有的地方生成静态将是件很麻烦的事情。
  2. 注意如果升级或者更改了以上的三个文件中的任何一个都需要重新修改,着实麻烦一点但是为了安全,辛苦一点了
  3. 这样就基本完工了。修改一个.htaccess和三个文件。如果哪位战友乐意做个插件出来也不错:)

《让你的WordPress更安全(更改wp-admin目录名)》有28个想法

发表评论

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