Đoạn code thủ thuật nho nhỏ mình sắp chia sẻ tới đây giúp khóa cứng 1 tài khoản Admin này mang lại là lớp phòng thủ tăng cường bảo mật.
Cá nhân mình nghĩ website WordPress cũng phải phân quyền rõ ràng và chỉ duy nhất 1 tài khoản admin mà thôi như vậy việc thắt chặt quyền quản trị bổ trợ rất tốt cho bảo mật.
5 lý do nền tảng của bạn cần giới hạn quyền Administrator ngay và luôn:
1: Ngăn chặn leo thang đặc quyền (Privilege Escalation): Nếu một plugin hoặc theme trên web tồn tại lỗ hổng bảo mật (ví dụ: lỗi XSS hoặc lỗi phân quyền REST API), hacker thường lợi dụng điều này để chiếm quyền. Lớp bảo vệ Core sẽ chặn đứng mọi nỗ lực thăng cấp quyền lên Administrator từ bên ngoài.
2: Chống mã độc tạo Backdoor: Rất nhiều loại mã độc WordPress hoạt động theo cơ chế tự động chèn hàm wp_insert_user hoặc thay đổi database để sinh ra một tài khoản admin ngầm nhằm duy trì quyền kiểm soát. Đoạn code mình sắp chia sẻ này sẽ tước quyền và giáng cấp tài khoản đó ngay khi mã độc vừa thực thi xong.
3: Bảo vệ tính toàn vẹn của cấu hình: Tránh được rủi ro từ việc người dùng nội bộ, khách hàng hoặc nhân viên vô tình (hoặc cố ý) tự cấp quyền cao nhất làm phá vỡ toàn bộ cấu trúc hệ thống bảo mật.
4: Thu hẹp bề mặt tấn công (Attack Surface): Khi chỉ có duy nhất một tài khoản được phép can thiệp sâu vào website, việc kiểm soát an toàn thông tin trở nên đơn giản hơn rất nhiều. Sẽ không còn tình trạng tồn tại những tài khoản quản trị cũ với mật khẩu yếu (dưới 12 ký tự password) làm mồi ngon cho các cuộc tấn công Brute Force.
5: Tuân thủ nguyên tắc quyền tối thiểu: Tính năng này đưa hệ thống vào khuôn khổ. Người viết bài bắt buộc phải dùng quyền Editor, người xử lý đơn hàng dùng quyền Shop Manager. Tuyệt đối không có ngoại lệ thăng quyền tạm thời rồi quên thu hồi. Nếu bạn cần viết bài thì dùng tài khoản biên tập viên, hạn chế truy cập tài khoản admin làm tất cả mọi thứ. Để nâng cao bảo mật hơn. – Bạn có một nhân viên content mới mà đưa luôn cho họ tài khoản admin thì thực sự quá rủi ro – hãy đưa tài khoản biên tập viên hoặc seoer tuỳ nhu cầu quyền phù hợp.
Đoan code giới hạn chỉ cho phép 1 website được 1 tài khoản admin thôi. này bạn hãy đưa nó vào file functions.php
add_action('user_profile_update_errors', 'wptangtoc_admin_ui_thong_bao', 10, 3);
function wptangtoc_admin_ui_thong_bao($errors, $update, $user) {
if (!isset($_POST['role']) || $_POST['role'] !== 'administrator') {
return;
}
$admins = get_users(['role' => 'administrator', 'fields' => 'ID']);
if (!$update) {
if (count($admins) >= 1) {
$errors->add('only_one_admin', 'Lỗi: Hệ thống bị khóa. Chỉ cho phép tồn tại duy nhất 1 tài khoản Administrator.');
}
} else {
if (count($admins) >= 1 && !in_array($user->ID, $admins)) {
$errors->add('only_one_admin', 'Lỗi: Không thể thăng cấp tài khoản này vì hệ thống đã có 1 Administrator.');
}
}
}
add_action('set_user_role', 'wptangtoc_admin_core_limit', 10, 3);
add_action('add_user_role', 'wptangtoc_admin_core_limit', 10, 2);
function wptangtoc_admin_core_limit($user_id, $role, $old_roles = []) {
if ($role === 'administrator') {
$admins = get_users([
'role' => 'administrator',
'fields' => 'ID',
'orderby' => 'ID',
'order' => 'ASC'
]);
if (count($admins) > 1 && $user_id != $admins[0]) {
$user = new WP_User($user_id);
$user->remove_role('administrator');
if (empty($user->roles)) {
$user->add_role('subscriber');
}
wp_die('Lỗi bảo mật nghiêm trọng: Thao tác bị từ chối. Hệ thống chỉ cho phép duy nhất 1 tài khoản Administrator hoạt động.');
}
}
}
Hy vọng thủ thuật nhỏ này sẽ giúp ích hệ thống bảo mật website của bạn hơn.


Để lại một bình luận