WordPress登陆失败自动发送邮件提醒(防暴力开心)
时间:2024年01月11日
/来源:网络
/编辑:佚名
今天登陆WordPress管理员账户时候,居然提示错误次数过多,请十分钟后再试,
判断这应该是有人多次尝试登陆管理员账户密码错误造成的。
这个时候就想看一下是谁登陆的,找了半天没有找到查看WordPress错误登陆日志的方法,
倒是找到了另一个也不错的方法,那就是如果登陆错误,自动发送邮件给管理员邮箱。
这里把代码记录一下
后台登录成功提醒
如果有人登录了WordPress后台,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_notify v1.0 by DH.huahua.
函数作用:有登录wp后台就会email通知博主
******************************************************/
function wp_login_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录提醒';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录!</p>' .
'<p>请确定是您自己的登录,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['username'] . '<p>' .
'<p>登录密码:' . $_POST['password'] . '<p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '<p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '<p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login', 'wp_login_notify');
后台登录失败提醒
有人尝试登陆你的系统,但是没有成功,这种反复尝试的动作本身就需要被记录下来,发给博主,这样,只要有错误的登录,就会发一封邮件到自己的邮箱,将对方尝试的登录名和登录密码发送到你邮箱。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_failed_notify v1.0 by DH.huahua.
函数作用:有错误登录wp后台就会email通知博主
******************************************************/
function wp_login_failed_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录错误警告';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录错误!</p>' .
'<p>请确定是您自己的登录失误,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['username'] . '<p>' .
'<p>登录密码:' . $_POST['password'] . '<p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '<p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '<p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login_failed', 'wp_login_failed_notify');
测试后,如果邮件收到的内容中“登陆名”和“登陆密码”为空,则可以把上方代码中“username”改为“log”,把“password”改为“pwd”。
测试效果不错:
判断这应该是有人多次尝试登陆管理员账户密码错误造成的。
这个时候就想看一下是谁登陆的,找了半天没有找到查看WordPress错误登陆日志的方法,
倒是找到了另一个也不错的方法,那就是如果登陆错误,自动发送邮件给管理员邮箱。
这里把代码记录一下
后台登录成功提醒
如果有人登录了WordPress后台,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_notify v1.0 by DH.huahua.
函数作用:有登录wp后台就会email通知博主
******************************************************/
function wp_login_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录提醒';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录!</p>' .
'<p>请确定是您自己的登录,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['username'] . '<p>' .
'<p>登录密码:' . $_POST['password'] . '<p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '<p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '<p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login', 'wp_login_notify');
后台登录失败提醒
有人尝试登陆你的系统,但是没有成功,这种反复尝试的动作本身就需要被记录下来,发给博主,这样,只要有错误的登录,就会发一封邮件到自己的邮箱,将对方尝试的登录名和登录密码发送到你邮箱。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_failed_notify v1.0 by DH.huahua.
函数作用:有错误登录wp后台就会email通知博主
******************************************************/
function wp_login_failed_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录错误警告';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录错误!</p>' .
'<p>请确定是您自己的登录失误,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['username'] . '<p>' .
'<p>登录密码:' . $_POST['password'] . '<p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '<p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '<p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login_failed', 'wp_login_failed_notify');
测试后,如果邮件收到的内容中“登陆名”和“登陆密码”为空,则可以把上方代码中“username”改为“log”,把“password”改为“pwd”。
测试效果不错:
新闻资讯 更多
- 【wordpress教程】WordPress跟踪记录访客在网站的搜索词 优化网站内容和搜索体验03-31
- 【wordpress教程】Zibll子比主题的用户中心修改头像增加支持上传PNG图片文件03-31
- 【wordpress教程】wordpress报错429怎么办03-28
- 【wordpress教程】wordpress如何批量删除指定分类目录下的所有文章03-23
- 【wordpress教程】Wordpress 在文章内容的第二段后面插入广告03-03
- 【wordpress教程】WordPress纯代码禁止发表重复标题的文章03-03
- 【wordpress教程】给wordpress博客-VIEU主题评论框添加打字特效(其他主题类似)03-03
- 【wordpress教程】wordpress自动批量定时发布插件 DX-auto-publish02-08
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法