Wordpress 隐藏登陆链接

in #wordpress6 years ago

用过Wordpress做博客或者建站的朋友,都会知道Wordpress默认的登陆地址是wp-login.php,很多恶意程序就是通过爬这个地址,尝试使用常见的用户名密码组合来入侵Wordpress。


(图源 :pixabay)

尽管我们可以通过使用复杂的用户名、高强度的密码来防止恶意程序的猜测,或者通过插件来检测类似行为并通过阻止对方IP等方式来限制对方访问,但是何不在源头上就解决掉呢?比如说换个登陆地址,让恶意脚本找不到?

修改wp-login.php

说干就干,我来把wp-login.php改成abc-login.php。首先备份一下wp-login.php,然后使用使用vi编辑器打开wp-login.php:

vi wp-login.php

一看呦呵,这文件里好多处引用到wp-login.php本身,所以光改文件名是不行的,让我来个全局替换吧。在vi命令模式下输入以下指令,并回车:

%s/wp-login.php/abc-login.php/g

返回提示信息如下:

足足12处啊,丧心病狂!

然后保存文件并退出,命令模式下输入以下指令,并回车:

wq

重命名wp-login.php

将wp-login.php修改为abc-login.php

mv wp-login.php abc-login.php

然后试了一下,可以使用abc-login.php正常登陆wordpress后台了,但是登陆后却无法退出,退出时提示wp-login.php找不到,囧。

修改general-template.php

查了一下,退出时链接地址是通过wp-includes/general-template.php传递的,所以我们编辑一下这个地址就行:

vi wp-includes/general-template.php

function wp_logout_url($redirect = '')中的如下语句:

$logout_url = add_query_arg($args, site_url('wp-login.php', 'login'));

修改为:

$logout_url = add_query_arg($args, site_url('abc-login.php', 'login'));

这个文件中还有几处引用到wp-login.php,但是不建议修改,比如login啊、lostpassword啊、registration啊,因为这些地址还是不暴露的好,除非我们真的有需要。

比如这个文件中的login,我们修改成正确的地址,用户就可以通过访问wp-admin直接重定向到abc-login.php,这样我们隐藏wp-login.php的地址就变得没有意义了。

保存退出,之后再尝试,发现登陆登出都已经正常啦,哦,对了在页面模板中记得去掉登陆链接。

其它方式

除了上述方式,还可以使用插件方式,比如说WPS Hide Login或者Better WP Security等插件,但是这些东西,个人认为引入越多风险越高,还是暴力修改比较舒服。

当然了,具体选择什么方式,还看自己喜好啦,以上仅一家之言,仅供参考。另外郑重提醒,记得备份,改坏了别找我啊,这个锅我是不会背的。

Sort:  

正好也打算搞个新的WordPress站点

Posted using Partiko Android

暴力修改是好,只是不知道还有没有手尾…

是,,, 完全不明白的

你不背没事,负责修就成,哈哈哈~

Coin Marketplace

STEEM 0.22
TRX 0.21
JST 0.035
BTC 98705.91
ETH 3342.47
USDT 1.00
SBD 3.14