目前已知的增加 wordpress 后台登录安全的方案有三种:

  1. 安全插件:如Limit Login Attempts Reloaded、WPS Hide Login 等等;
  2. 登录 URL 增加自定义key,因为这个key只有自己知道,所以增加了直接访问后台的困难性。
  3. 前后台区分 URL 访问,如 www.abc.com 访问前台;admin2.abc.com 访问后台。

我习惯了使用第二种方案,增加直接访问后台登录地址的困难性。

下面记录一下,个人认为需要强调的点和配置的过程。

一、主题目录下 wp-content\themes\theme\functions.php 或者 全局 wp-includes\functions.php 增加如下代码

///增加登录key,没有key跳转到首页
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
    if($_GET['chKey'] != 'Login') header('Location: /');
}

二、接下来,说下遇到的几个问题:

      1、只修改get访问,可以直接 post 请求发送账号密码,跳过了页面。

      2、$_GET 下标 不能定义为 key,不然参数会消失,直接跳回首页。

      3、如果输错密码,不返回重新输入密码页面,会直接跳到首页。

针对这几个问题,看下解决方案:

  • 针对 post 请求解决方案:
///①、修改wp-login.php登录页面代码
<!-- 在原有的URL的基础上新增了参数	-->
<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ).'?chKey=Login'; ?>" method="post">
<!-- 新增的参数	-->
<input type="hidden" readonly="readonly" value="Login" name="chKey">
///②、调整 login_protection 函数
function login_protection(){
    if($_GET['cusKey'] != 'cusLogin'){ header('Location: /'); }
    if((isset( $_POST['log'] ) || isset( $_POST['pwd'] )) && $_POST['chKey'] != 'Login'){
		header('Location: /');
	}
}
  • 针对 $_GET 下标解决方案

       不定义为 key 就完了嘛!

  • 输错密码会直接跳到首页解决方案

       首先说产生这个事情的原因是后台是根据表单的 action 地址回跳的,由于第一个问题已经修改了表单的 action 地址,所以这个问题也同时解决了

三、仔细看的话,点击 忘记密码 也会跳到首页,一般保留好密码是不会忘记的,如果你想以防万一调整下忘记密码的 URL 即可:后缀增加 &chKey=Login。

四、调整错误信息提示

   输错账号或密码时,发现提示信息并不够友好,这对于有点强迫症的我,是忍受不了的。



   将 wp-login.php 文件中的代码 echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n"; 修改为 echo '<div id="login_error">'. print_r($errors,true) . "</div>\n";

   再来看看显示效果

基本调整到此结束。

wordpress 后台登录增加访问效验的更多相关文章

  1. wordpress 后台登录增加访问效验,优化退出效果

    之前记录了 wordpress 后台登录增加访问效验, 记录了增加后台访问地址被直接访问的困难性的修改步骤. 还有一个地方需要补充一下,就是退出. 退出的时候不做调整会直接跳到首页,这样体验很不好. ...

  2. 修改WordPress后台登录地址,提高安全性

    大家都知道,WordPress默认的后台登陆地址是http://[你的域名]/wp-admin,今天就来讲讲怎么修改WordPress后台登录地址,首先要知道为什么要修改WordPress后台登录地址 ...

  3. 如何通过数据库修改WordPress后台登录密码

    大家是否有过因为忘记WordPress后台登陆密码的时候?其实WordPress后台登陆密码的找回或修改的方法有多种,比如通过邮箱重启密码,又或者通过主机控制面板进入数据库修改等等.本篇教程以GoDd ...

  4. 保护wordpress后台登录地址

    前几天有个群友的wordpress网站被后台入侵了,吓得我赶紧看了看网站日志,密密麻麻的404,扫描我的后台登录地址.还好之前有了安全措施: 纯代码保护后台登录地址,防止爆破 //保护后台登录add_ ...

  5. 更换WordPress后台登录地址

    在后台找到wp-content—themes—twentyfifteen(当前的网站主题)—functions.php 在代码的最下面加入以下代码: //后台唯一登录地址 add_action('lo ...

  6. 如何修改隐藏Zblog/WordPress默认后台登录地址

    我相信很多博主站长都遇到过站点被暴力破解,虽然未被破解,但是经常收到那些尝试登录失败的邮件提醒也会心慌慌的.对于这种情况,最好的办法就是修改/隐藏我们的后台登录地址. 关于zblogASP后台登录地址 ...

  7. thinkPHP中怎么访问域名直接跳到后台登录页面

    问题: 我想只访问域名就跳到后台登录页面,怎么把地址栏里的路径隐藏掉 答案: 修改配置Common里的conf文件夹里,把默认模块改成“Admin”,默认控制器改成“login”系统默认的默认模块式h ...

  8. wordpress 后台无法登录 网站内容缺失

    昨天网站又突然不正常了,前两天都是好的.. 具体来说就是wp后台登录不进去,一直在登录页跳转,与此同时服务器上其他网站也有这个问题,而且有些网站的板块内容也缺失了, 所以首要就是要登录进后台看看是不是 ...

  9. WordPress的后台功能菜单介绍与操作,WordPress后台说明

    WordPress网站的后台概况和登陆地址 网站都有个后台管理系统,通过网站后台,你可以改变你的网站外观,管理你网站的数据,给网站前台增加页面,文章,视频,图片或者其他功能. 通过WordPress建 ...

随机推荐

  1. Tomcat转jboss踩的那些坑

    问题背景 今天发版本,是一个httpclient的跳转(由于公司网络原因,所以对外网的访问都经过这个代理服务出去). 问题原因 之前的开发一直在window系统的tomcat服务器上进行的,对jbos ...

  2. php语法学习:轻松看懂PHP语言

    基础语法 开头结尾 PHP脚本以 "<?php " 开头以 "?>" 结尾 <!DOCTYPE html> <html>&l ...

  3. 50个技巧提高你的PHP网站程序执行效率

    1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static ...

  4. Unity "Build failed : Asset is marked as don't save " 解决方案

    编译到Android时失败,是字体的原因: -- -- 摘自官方论坛排第二但点赞第一的回答. http://answers.unity3d.com/questions/363963/build-fai ...

  5. 蓝桥杯_基础训练_Sine之舞

    基础练习 Sine之舞   时间限制:1.0s   内存限制:512.0MB 问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做 ...

  6. JQuery选择器排除某元素实现js代码

    使用JQuery选择器实现排除某一大元素下的某一元素的核心代码是使用.not()方法,如下所示: $("button").not("#save").attr(& ...

  7. Proxifier安装与使用

    Proxifier安装与使用 1.Proxifier官网可能打不开,这是一个下载地址,提取码为p1l8. 用户名随意填 注册码下边 5EZ8G-C3WL5-B56YG-SCXM9-6QZAP G3ZC ...

  8. hive用mysql作元数据代替默认derby的hive-site.xml配置

    <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://s ...

  9. jvm 虚拟机参数_新生代内存分配

    1.参数 -Xmn 设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个参数对系统性能以及 GC 行为影响很大,新生代大小一般设置为真个堆内存的1/3到1/4 -XX:SurvivorRa ...

  10. POJ——T2352 Stars

    http://poj.org/problem?id=2352 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 46592   ...