【安全防护】 WordPress 登陆失败自动发送邮件提醒

2017-03-1508:00:21 30 4,238
摘 要

其实这个代码有时候会因为有人频繁的恶意登陆尝试造成大量邮件,这时就要及时的通过获取的IP来屏蔽之了,或者隐藏wp-login等方式来规避这种恶意的登陆尝试。

可能很多博客站长们都遇到过自己的博客经常被恶意登陆尝试了,明月以前的主题 Git 集成了“WordPress 登陆失败自动发送邮件提醒”的小功能,更换主题为 Begin 后也就渐渐的淡忘了这个实用的安全功能了,今天无意中在【TENNFY WU』博客里看到分享的这个代码,我才想起里这个功能其实还是很有必要的,毕竟过于频繁的恶意登陆尝试对主机负载也是有影响。

通过下面的代码,可以第一时间收到登陆失败的邮件提醒,还能获得登陆失败的“登录名”、“尝试的密码”、“登录时间”、“登录的 IP”,通过这些数据就可以提高自己 WordPress 站点的安全系数。

  1. // 博客后台登录失败时发送邮件通知管理员
  2. function wp_login_failed_notify()
  3. {
  4.     date_default_timezone_set('PRC');
  5.     $admin_email = get_bloginfo('admin_email');
  6.     $to = $admin_email;
  7.     $subject = '【登录失败』有人使用了错误的用户名或密码登录【' . get_bloginfo('name') . '』';
  8.     $message = '<span style="color:red; font-weight: bold;">【' . get_bloginfo('name') . '』有一条登录失败的记录产生,若登录操作不是您产生的,请及时注意网站安全!</span><br /><br />';
  9.     $message .= '登录名:' . $_POST['log'];
  10.     $message .= '<br />尝试的密码:' . $_POST['pwd'];
  11.     $message .= '<br />登录的时间:' . date("Y-m-d H:i:s");
  12.     $message .= '<br />登录的 IP:' . $_SERVER['REMOTE_ADDR'];
  13.     $message .= '<br /><br />';
  14.     $message .= '您可以: <a href="' . get_bloginfo('url') . '" target="_target">进入' . get_bloginfo('name') . '»</a>';
  15.     wp_mail( $to$subject$message"Content-Type: text/html; charset=UTF-8" );
  16. }
  17. add_action('wp_login_failed', 'wp_login_failed_notify');

将上述代码放到当前主题 function.php 文件里即可,推荐【如何方便的在更新主题时保留 functions.php 里的自定义』一文供大家参考,防止在主题更新后“自定义”代码会被覆盖问题出现。

其实这个代码有时候会因为有人频繁的恶意登陆尝试造成大量邮件,这时就要及时的通过获取的 IP 来屏蔽之了,或者隐藏 wp-login 等方式来规避这种恶意的登陆尝试。

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:30   其中:访客  15   博主  15

    • 赤壁电影网 赤壁电影网 0

      楼下是疯子。哈哈

      • podipod软库网 podipod软库网 1

        为什么我试了获取不到登录名和密码,都是空白的

        • 九哥 九哥 3

          是放在function.php文件里,还是functions.php文件?

          • 九哥 九哥 3

            说的是,还是有提醒好,直接屏蔽。

            • 微凉 微凉 1

              begin主题自带,哈哈,我今天就收到有人恶意登录的邮件了,那个密码笑死我了。

              • 瑕不掩瑜 瑕不掩瑜 5

                其实吧,最后还是要看如何灵活的使用这一功能了!

                • 励志语录 励志语录 2

                  学习了 :mrgreen:

                  • Chalice Chalice 1

                    这么搞没什么意义的,很多插件都可以实现记录登录失败的IP甚至还可以自动拦截。

                      • 明月登楼 明月登楼 Admin

                        @Chalice 呵呵,我感觉蛮好的,最起码有个提醒作用,要不主机资源被耗尽经常莫名其妙的!

                          • Chalice Chalice 1

                            @明月登楼 我的意思是很多插件可以一步到位解决,没必要自己造这个轮子

                              • 明月登楼 明月登楼 Admin

                                @Chalice 呵呵,明白了!能用代码就用代码,插件尽量少用!插件多了不是个好事儿! WordPress 还是插件越少越好了!

                          • boke112导航 boke112导航 9

                            隐藏加密后台登录地址也不行吗?还能有人破解登录?