Bảo mật wordpress

Tài liệu tham khảo:

  • https://dotrungquan.info/tang-cuong-bao-mat-wordpress-voi-wordpress-manager/
  • https://wptangtoc.com/bao-mat-wordpress-co-ban/#3_Bao_mat_tu_cap_webserver_hon_la_cap_website

Quy trình bảo mật wordpress

Edit this title
Thiết lập an toàn ngay khi cài đặt (Installation)
  • Thay đổi Table Prefix: Mặc định của WordPress là wp_. Hãy đổi thành một chuỗi ngẫu nhiên như hx72_ để chống lại các cuộc tấn công SQL Injection nhắm vào cấu trúc bảng mặc định.
  • Tên người dùng (Username): Tuyệt đối không dùng admin, root hay tên miền của bạn làm username. Hãy dùng một tên riêng biệt và khó đoán.
  • Mật khẩu: Sử dụng mật khẩu tối thiểu 16 ký tự, bao gồm chữ hoa, chữ thường, số và ký tự đặc biệt.
Cấu hình file wp-config.php
Chặn chỉnh sửa file trực tiếp

Ngăn người lạ (hoặc chính bạn) vô tình sửa code trong giao diện Admin bằng đoạn code sau:

define('DISALLOW_FILE_EDIT', true);

Cấu hình file .htaccess

Cập nhật WordPress, theme, plugin lên phiên bản mới nhất

Sử dụng tài khoản và mật khẩu quản trị có độ khó cao

Kích hoạt bảo mật 2 lớp

Tắt báo cáo lỗi PHP Error

Tuyệt đối không sử dụng Themes và Plugins nulled

Quét malware thường xuyên để loại bỏ chúng từ sớm

Thường xuyên sao lưu (Backup) dữ liệu WordPress

Tắt chức năng File Editing trong bảng điều khiển dashboard

WordPress mặc định đã cho phép chúng ta có thể chỉnh sửa file ở trong phần quản trị admin. Để tắt tính năng này, chỉ cần thêm vào trong file cấu hình wp-config.php đoạn code dưới đây:

define( 'DISALLOW_FILE_EDIT', true );

Xóa Themes và Plugins không dùng tới hoặc đã lỗi thời

Việc xóa các plugins và themes không sử dụng trên WordPress giúp tăng cường bảo mật, vì hacker có thể lợi dụng những phần mềm lỗi thời để xâm nhập và tải phần mềm độc hại. Bằng cách này, bạn giảm nguy cơ bị tấn công và bảo vệ site tốt hơn.

Cấu hình file .htaccess để bảo mật tốt hơn

Chặn truy cập tới trang quản trị WordPress

Đoạn mã bên dưới giúp bạn chặn truy cập vào WordPress Administrator và chỉ cho phép một số địa chỉ IPs được chỉ định ở mục allow:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>

Tắt khả năng thực thi PHP trong thư mục được chỉ định

Kẻ tấn công thích upload các scripts độc hại lên thư mục WordPress. Mặc định thư mục này được dùng để chứa file đa phương tiện. Vì vậy nó không nên được dùng để chứa file PHP. Bạn có thể dễ dàng vô hiệu chức năng thực thi PHP bằng cách tạo một file .htaccess trong thư mục /wp-content/uploads/ với các lệnh như sau:

<Files *.php>
deny from all
</Files>

Bảo vệ WordPress file wp-config.php

wp-config.php file chứa các cài đặt WordPress cốt lõi và thông tin chi tiết MySQL databases. Vì vậy đây là một file WordPress quan trọng nhất, cũng là file chính mà hacker thường nhắm tới để tấn công WordPress. Tuy nhiên, bạn có thể dễ dàng bảo vệ file này bằng lệnh sau trong .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

Tắt wp-debug trong wp-config

Tắt WP_DEBUG trong wp-config.php để tăng cường bảo mật khi sử dụng WordPress trên môi trường chính thức. Tính năng này chỉ nên bật trên localhost để sửa lỗi. Thêm đoạn sau vào cuối file:

define( 'WP_DEBUG', false );

Thay đổi tiền tố (prefix) của database để ngăn chặn SQL injections

Tắt đọc chỉnh sửa truy xuất file trực tiếp

Bạn cần chặn quyền truy cập vào thư mục wp-includes, nơi không cần thiết cho người dùng thông thường. Việc để thư mục này mở có thể giúp hacker khai thác các lỗ hổng tiềm ẩn hoặc xác định phiên bản WordPress bạn đang sử dụng. Để ngăn chặn, hãy thêm mã sau vào tệp .htaccess để trả về lỗi 403 khi có truy cập trái phép:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Tắt XML-RPC

Tính năng XML-RPC được tích hợp sẵn từ WordPress 3.5 nhằm hỗ trợ kết nối từ xa. Tuy nhiên, tính năng này từng bị khai thác trong các cuộc tấn công DDoS, và hầu hết người dùng không cần dùng đến. Để tắt XML-RPC, thêm đoạn mã sau vào file functions.php:

add_filter('xmlrpc_enabled', '__return_false');
add_filter('wp_headers', 'remove_x_pingback');
add_filter('pings_open', '__return_false', 9999);
add_filter('pre_update_option_enable_xmlrpc', '__return_false');
add_filter('pre_option_enable_xmlrpc', '__return_zero');
function remove_x_pingback($headers) {
unset($headers['X-Pingback'], $headers['x-pingback']);
return $headers;
}