修改wordpress登录后台地址增加安全性

作者 : 小编 本文共3779个字,预计阅读时间需要10分钟 发布时间: 2020-03-25 共16人阅读

很多wordpress博主都设置了登录才能评论的功能,这样一来就必须允许用户注册,很多博主会认为游客和管理员共用一个登录地址会造成安全问题,或者单纯就是为了管理员单独开启一个登录入口。

关注这个问题,百度找到的答案最多的就是修改wp-login.php和general-template.php,对于很对用户很不方便,并且一旦程序更新又要重新修改。下面就介绍一种不用修改文件,单纯通过钩子实现的方法。

效果:只能通过自定义的地址登录wp,原wp-login.php返回404。

首先,通过login_url修改wp_login_url()函数返回的登录地址,该函数被很多主题调用以跳转到登录页;通过logout_url修改wp_logout_url()函数返回的登录地址。

  1. login_url过滤器包含三个参数,$login_url$redirect$force_reauth,其中
  2. $login_url(必须),登录用的自定义url,例如http://example.com/my-login-page,默认wp-login.php
  3. $redirect(可选) 登录成功后重定向的地址,默认无。

$force_reauth(布尔值,可选),如果为true,无论cookie什么值,都强制重新认证。

  1. add_filter( <span class=“hljs-string”>’login_url'</span>, <span class=“hljs-string”>’my_login_page'</span>, <span class=“hljs-number”>10</span>, <span class=“hljs-number”>3</span> );
  2. <span class=“hljs-function”><span class=“hljs-keyword”>function</span> <span class=“hljs-title”>my_login_page</span><span class=“hljs-params”>( $login_url$redirect$force_reauth )</span> </span>{
  3. <span class=“hljs-keyword”>return</span> home_url( <span class=“hljs-string”>’/my-login-page/?redirect_to='</span> . $redirect );
  4. }

通过以上代码,登录地址则变为/my-login-page

logout_url过滤器需要两个参数,$logout_url和$redirect
$logout_url登出wordpress的url,也就是后台右上角的“登录”的url
$redirect 成功登出后跳转到的地址

  1. add_filter( <span class=“hljs-string”>’logout_url'</span>, <span class=“hljs-string”>’my_logout_page'</span>, <span class=“hljs-number”>10</span>, <span class=“hljs-number”>2</span> );
  2. <span class=“hljs-function”><span class=“hljs-keyword”>function</span> <span class=“hljs-title”>my_logout_page</span><span class=“hljs-params”>( $logout_url$redirect )</span> </span>{
  3. <span class=“hljs-keyword”>return</span> home_url( <span class=“hljs-string”>’/my-logout-page/?redirect_to='</span> . $redirect );
  4. }

通过以上代码,登出url更改为/my-logout-page

注:通常情况下,我们不会为登录和登出设定两个url,而是通过类似 /my-login-page?action=logout实现登出功能。

第二步,让wp-login.php返回404。

这里需要用到wp_init钩子,判断请求的url是否wp-login.php,如果是,则redirect到404地址。

  1. add_action(<span class=“hljs-string”>’login_enqueue_scripts'</span>,<span class=“hljs-string”>’wp_login_php_404′</span>);
  2. <span class=“hljs-function”><span class=“hljs-keyword”>function</span> <span class=“hljs-title”>wp_login_php_404</span><span class=“hljs-params”>()</span></span>{
  3. $request = parse_url(<span class=“vars”>$_SERVER</span>[<span class=“string”><span class=“hljs-string”>“REQUEST_URI”</span></span>]);
  4. <span class=“hljs-keyword”>if</span>($request[<span class=“hljs-string”>’path'</span>] == <span class=“hljs-string”>’/wp-login.php'</span> &amp;&amp; str_pos(wp_get_refer(),home_url( <span class=“hljs-string”>’/my-logout-page'</span> )) !==<span class=“hljs-number”>0</span> ){
  5. wp_safe_redirect(home_url(<span class=“hljs-string”>’/404′</span>));
  6. }

第三步,根目录新建my-login-page,内容只需一行。

require_once('wp-login.php');

其实第三步还有一种是实现方式是类似于第二步的,通过wp_init判断请求地址,如果是my-login-page,则require wp-login.php,可以避免手动新建my-login-page文件。

通过以上三步就完成了wordpress登录地址的自定义。下一篇将介绍如何通过插件为管理员和非管理员指定不同的登录地址。


其他方式

方法1:使用插件

利:简单高效,一键设置

弊:插件太多会使博客响应变慢,不利于用户体验

操作:后台插件列表中搜索安装 Limit Login Attempts, 这款插件安装并启用后就不需要做其他得设置了。如果有人连续登陆失败,这个插件会临时屏蔽他的 IP 地址,使其无法继续登录。

 

方法2:代码法

利:不使用插件,简单几行代码轻松搞定安全问题,对网站的影响为0

弊:不懂代码的朋友操作起来会比较费劲

操作:鉴于有一部分朋友不懂代码,下面我将详细的代码写出来,大家只要照着做就行:

1、打开当前主题的functions.php 文件,查找路径为:根目录-/wp-content/-/themes/-/你的主题名/-functions.php

2、复制这段代码:

  1. //保护后台登录
  2. function login_protection(){
  3. if($_GET[‘word’] != ‘mbxzb’)header(‘Location: http://www.mbxzb.com/’);
  4. }
  5. add_action(‘login_enqueue_scripts’,’login_protection’);

3、粘贴到functions.php的结尾处,要在?>之上。

4、覆盖上传,这样只有打开 https://www.mbxzb.com/wp-login.php?word=mbxzb,才会打开登录页,否则就会自动跳转到 https://www.mbxzb.com/

注意:这是我为我的博客的设置,你要操作的话,就要把www.mbxzb.com以及word后面的替换成你的,也就是要打开“你的网站/wp-login.php?word=关键词”这条连接。

方法3:修改文件名

利:暴力直接

弊:也没啥弊端,只是这样不符合我的SEO审美(处女座怪癖….)

操作:将wp-login.php修改成wp-mbxzb.php,然后打开这个文件,将里面所有的wp-login.php批量替换成wp-mbxzb.php。这样登录地址便成了https://www.mbxzb.com/wp-mbxzb.php

以上就是修改wordpress登录地址的三个比较简单的方法,当然还有很多牛逼的方法,但是对于博客来说这种方法也是够用了。

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: admin@zyfx8.cn),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 修改wordpress登录后台地址增加安全性

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片?
对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

Leave a Reply