有人登錄WordPress後臺時郵件提醒管理員

本文目錄1後臺登錄成功提醒2後臺登錄失敗提醒

WordPress安全問題越來越不容忽視,如何知道自己的登錄信息是否已泄露,自己的部落格是否被別人反復嘗試登錄?今天分享下有人嘗試登錄你WordPress站點後臺時,發送郵件通知管理員的方法。

email-admin-when-someone-login-wpdaxue_com

後臺登錄成功提醒

如果有人登錄瞭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

發佈留言