- Vì sao cần kéo dài thời gian đăng nhập?
- Kéo dài thời gian đăng nhập lên 30 ngày khi bật “Ghi nhớ”
- Giới hạn theo vai trò người dùng
- Các lưu ý bảo mật khi kéo dài đăng nhập
- Thay đổi logo trên trang đăng nhập
- Đổi URL đăng nhập để giảm brute force
- Giới hạn số lần đăng nhập sai
- Bật xác thực hai lớp (2FA)
- Thêm CAPTCHA vào form đăng nhập
- Ẩn lỗi đăng nhập chi tiết
- Chuyển hướng sau đăng nhập theo vai trò
- Bật sẵn “Remember me” để trải nghiệm tốt hơn
- Checklist bảo mật nhanh cho trang đăng nhập
- Kết luận
Vì sao cần kéo dài thời gian đăng nhập?
Mặc định WordPress kết thúc phiên đăng nhập khá nhanh. Nếu không bật “Ghi nhớ”, cookie chỉ tồn tại khoảng 2 ngày. Với những quản trị viên làm việc thường xuyên trên thiết bị cá nhân, điều này gây phiền toái vì phải đăng nhập lặp lại. Kéo dài thời gian đăng nhập giúp tiết kiệm thời gian và tạo trải nghiệm mượt mà hơn.
Kéo dài thời gian đăng nhập lên 30 ngày khi bật “Ghi nhớ”
Bạn có thể điều chỉnh thời gian sống của cookie đăng nhập bằng filter auth_cookie_expiration. Đoạn code dưới đây chỉ tác động khi người dùng tick “Ghi nhớ”, ngược lại giữ nguyên mặc định.
// Extend WP login duration to 30 days when "Remember me" is checked
add_filter('auth_cookie_expiration', function($length, $user_id, $remember) {
if ($remember) {
return 30 * DAY_IN_SECONDS;
}
return $length;
}, 10, 3);
Giới hạn theo vai trò người dùng
Nếu có nhiều vai trò khác nhau, bạn có thể chỉ cho phép admin hoặc editor kéo dài phiên đăng nhập.
add_filter('auth_cookie_expiration', function($length, $user_id, $remember) {
if (!$remember) return $length;
$user = get_user_by('id', $user_id);
if (!$user) return $length;
$allowed = ['administrator', 'editor'];
if (array_intersect($allowed, (array) $user->roles)) {
return 30 * DAY_IN_SECONDS;
}
return $length;
}, 10, 3);
Các lưu ý bảo mật khi kéo dài đăng nhập
Kéo dài phiên đăng nhập chỉ nên thực hiện trên thiết bị cá nhân. Nếu thiết bị chung hoặc dễ bị truy cập, tuyệt đối không sử dụng “Ghi nhớ”. Ngoài ra, hãy luôn bật khóa màn hình hoặc mật khẩu hệ điều hành để đảm bảo an toàn.
Thay đổi logo trên trang đăng nhập
Để đồng bộ thương hiệu, bạn có thể thay logo mặc định của WordPress bằng logo riêng.
add_action('login_enqueue_scripts', function() {
$logo_url = get_stylesheet_directory_uri() . '/assets/img/login-logo.png';
?>
<style>
.login h1 a {
background-image: url('<?php echo esc_url($logo_url); ?>');
background-size: contain;
width: 100%;
height: 80px;
}
</style>
<?php
});
add_filter('login_headerurl', function() {
return home_url('/');
});
Đổi URL đăng nhập để giảm brute force
Brute force thường nhắm vào /wp-login.php. Đổi sang URL khác giúp giảm tấn công đáng kể. Có thể sử dụng plugin như WPS Hide Login, đây là cách nhanh và an toàn cho hầu hết website.
Giới hạn số lần đăng nhập sai
Nên giới hạn số lần nhập sai mật khẩu để chống brute force. Các plugin phổ biến gồm Limit Login Attempts Reloaded, Wordfence và iThemes Security.
Bật xác thực hai lớp (2FA)
2FA giúp bảo mật tài khoản mạnh hơn. Ngay cả khi mật khẩu bị lộ, hacker vẫn không thể đăng nhập. WP 2FA, Google Authenticator và Wordfence đều hỗ trợ tốt.
Thêm CAPTCHA vào form đăng nhập
CAPTCHA giúp ngăn bot đăng nhập. Cloudflare Turnstile là lựa chọn nhẹ và thân thiện hơn reCAPTCHA.
Ẩn lỗi đăng nhập chi tiết
WordPress có thể tiết lộ username hợp lệ qua thông báo lỗi. Bạn nên ẩn thông tin này để tránh bị dò tài khoản.
add_filter('login_errors', function() {
return __('Login failed. Please check credentials.', 'textdomain');
});
Chuyển hướng sau đăng nhập theo vai trò
Tối ưu redirect giúp người dùng tới đúng nơi họ cần ngay sau khi đăng nhập.
add_filter('login_redirect', function($redirect_to, $request, $user) {
if (!isset($user->roles) || !is_array($user->roles)) {
return $redirect_to;
}
if (in_array('administrator', $user->roles, true)) {
return admin_url();
}
if (in_array('editor', $user->roles, true)) {
return admin_url('edit.php');
}
return home_url('/');
}, 10, 3);
Bật sẵn “Remember me” để trải nghiệm tốt hơn
Nếu website chủ yếu do admin sử dụng trên thiết bị cá nhân, có thể tự động tick “Ghi nhớ”.
add_action('login_enqueue_scripts', function() {
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
var el = document.getElementById('rememberme');
if (el) el.checked = true;
});
</script>
<?php
});
Checklist bảo mật nhanh cho trang đăng nhập
- Kéo dài thời gian đăng nhập theo nhu cầu.
- Đổi URL đăng nhập để giảm brute force.
- Giới hạn số lần nhập sai.
- Bật 2FA cho admin.
- Thêm CAPTCHA vào form đăng nhập.
- Ẩn thông báo lỗi nhạy cảm.
- Redirect theo vai trò người dùng.
Kết luận
Kéo dài thời gian đăng nhập WordPress là cách cải thiện trải nghiệm quản trị rõ rệt. Khi kết hợp với các biện pháp bảo mật cần thiết như giới hạn login sai, 2FA và CAPTCHA, trang đăng nhập sẽ an toàn và tiện dụng hơn rất nhiều.
Bình luận