什麼是「使用者帳號列舉」
常見的使用者帳號列舉方法:
登入介面的錯誤訊息:
-
不同錯誤訊息:如果系統在輸入不存在的帳號和存在但密碼錯誤的帳號時,回應的錯誤訊息不同,攻擊者可以根據這些訊息來判斷帳號是否存在。
-
相同錯誤訊息:即使系統在兩種情況下給出相同的錯誤訊息,攻擊者仍可透過分析回應時間的差異來推測帳號是否存在。
-
密碼重設功能:當攻擊者輸入一個電子郵件地址或帳號名進行密碼重設,如果系統回應該帳號不存在,攻擊者就能確定該帳號是無效的。
-
註冊功能:在某些註冊過程中,如果系統提示某個電子郵件或帳號名已經被使用,這就洩露了帳號已存在的信息。
如何在 WordPress 中自訂統一錯誤訊息?
// Add this function to your theme's functions.php file or a custom plugin
function custom_invalid_username_error_message( $errors, $redirect_to ) {
// Check if the error code 'invalid_username' is present
if ( isset( $errors->errors['invalid_username'] ) ) {
// Customize the error message
$errors->errors['invalid_username'][0] = 'User credentials doesn\'t match the existing ones!';
}
if ( isset($errors->errors['incorrect_password'])) {
$errors->errors['incorrect_password'][0] = 'User credentials doesn\'t match the existing ones!';
}
return $errors;
}
add_filter( 'wp_login_errors', 'custom_invalid_username_error_message', 10, 2 );