有人登录WordPress后台时邮件提醒管理员

所有的人都想停留在那山顶,但是所有的乐趣和成长都是发生在往上爬的过程中。新的一天,早安!

WordPress安全问题越来越不容忽视,如何知道自己的登录信息是否已泄露,自己的博客是否被别人反复尝试登录?今天倡萌分享下有人尝试登录你WordPress站点后台时,发送邮件通知管理员的方法。

后台登录成功提醒

如果有人登录了WordPress后台,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*****************************************************
 函数名称: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['log'] . '<p>' .
	'<p>登录密码:' . $_POST['pwd'] .  '<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');

/***************************************************** 函数名称: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['log'] . '<p>' . '<p>登录密码:' . $_POST['pwd'] . '<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中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*****************************************************
 函数名称: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['log'] . '<p>' .
	'<p>登录密码:' . $_POST['pwd'] .  '<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');

/***************************************************** 函数名称: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['log'] . '<p>' . '<p>登录密码:' . $_POST['pwd'] . '<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');

参考资料:http://dhblog.org/25.html

本文有人登录WordPress后台时邮件提醒管理员到此结束。没有哪一个聪明人会否定痛苦与忧愁的锻炼价值。小编再次感谢大家对我们的支持!

标签: 台时 WordPress