Để bảo mật hiệu quả cơ sở dữ liệu WordPress, chúng ta cần hiểu cách WordPress sử dụng cơ sở dữ liệu, các lỗ hổng thường bị hacker khai thác và cách ngăn chặn chúng.
WordPress Sử Dụng Cơ Sở Dữ Liệu Như Thế Nào?
WordPress dùng PHP làm ngôn ngữ kịch bản (để lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu) và MySQL để quản lý cơ sở dữ liệu, sử dụng các truy vấn SQL trong mã PHP. Ví dụ, khi bạn đăng nhập vào trang web doanh nghiệp chạy WordPress, chính SQL thực hiện việc đăng nhập, trích xuất ID người dùng, xác thực và đảm bảo dữ liệu hồ sơ đúng hiển thị ở giao diện người dùng.
PHP và SQL làm việc cùng nhau, giúp WordPress tạo ra trải nghiệm nội dung động cho người dùng. Điều này cho phép tùy chỉnh nội dung cho các nhóm người dùng cụ thể như quản trị viên, biên tập viên và người đăng ký.
Plugin và theme cũng sử dụng cơ sở dữ liệu WordPress để lưu trữ dữ liệu. Chúng dùng SQL trong mã PHP để truy vấn cơ sở dữ liệu và xuất nội dung động. Các plugin khác như WP-DB Manager có thể dùng để quản lý cơ sở dữ liệu dễ dàng.
Bài viết liên quan: 15 mẹo cấu hình WordPress giúp tiết kiệm thời gian

Cách Bảo Mật Cơ Sở Dữ Liệu WordPress?
Cơ sở dữ liệu WordPress là "bộ não" của trang web vì nó lưu trữ tất cả thông tin: bài viết, trang, bình luận, thẻ, người dùng, danh mục, trường tùy chỉnh và các tùy chọn trang web. Điều này khiến nó trở thành mục tiêu hấp dẫn cho kẻ xấu. Spammer và hacker chạy mã tự động để tấn công SQL injection. Dưới đây là cách bảo mật cơ sở dữ liệu WordPress.
Bài viết liên quan: 25 thực hành bảo mật WordPress tốt nhất
1. Thay Đổi Tên Người Dùng Quản Trị Viên
Giống như mọi CMS khác, WordPress có tài khoản quản trị mặc định. Không thay đổi đăng nhập admin mặc định giúp kẻ xấu dễ dàng truy cập trái phép vào trang web và cơ sở dữ liệu của bạn.
Trong WordPress, tên người dùng mặc định là admin. Hãy thay đổi ngay nếu bạn chưa làm.
- Truy cập phpMyAdmin.
- Chạy truy vấn sau. Thay đổi tên người dùng từ
adminthànhbatky.
UPDATE {database_prefix}users SET user_login='batky' WHERE user_login='admin'; - Trong trường hợp WordPress multisite, bạn có thể dùng hàm
grant_super_admin()để cấp quyền super admin.
2. Thay Đổi ID Quản Trị Viên
Trong WordPress, tên admin mặc định là admin và ID người dùng admin mặc định là 1. Nhiều cuộc tấn công SQL injection đã khai thác điều này. Do đó, bạn nên thay đổi sớm nhất để bảo mật cơ sở dữ liệu. Để thay đổi ID người dùng admin:
- Truy cập phpMyAdmin.
- Chạy các truy vấn sau.
UPDATE wp_users SET ID = 2807 WHERE ID = 1;
UPDATE wp_posts SET post_author = 2807 WHERE post_author = 1;
UPDATE wp_comments SET user_id = 2807 WHERE user_id = 1;
UPDATE wp_usermeta SET user_id = 2807 WHERE user_id = 1;
ALTER TABLE wp_users AUTO_INCREMENT = 2808
MẸO: Khuyến nghị tạo bản sao lưu trước khi thay đổi. Kiểm tra hoạt động trang web sau mỗi thay đổi để đảm bảo không ảnh hưởng chức năng khác.
3. Trong trường hợp WordPress multisite, bạn phải nhân bản một vài dòng cho mỗi trang web trong mạng như sau:
UPDATE wp_2_posts SET post_author = 5487 WHERE post_author = 1;
UPDATE wp_2_comments SET user_id = 5487 WHERE user_id = 1;
Bạn cũng có thể chạy các truy vấn trong vòng lặp bằng PHP và $wpdb.
3. Thay Đổi Tiền Tố Cơ Sở Dữ Liệu
Tiền tố mặc định của cơ sở dữ liệu WordPress là wp_. Để bảo mật, khuyến nghị thay đổi tiền tố mặc định ngay trong quá trình cài đặt WordPress.

Nếu chưa làm, hãy thực hiện ngay theo các bước:
- Truy cập trang web qua FTP client.
- Điều hướng đến file cấu hình wp-config.php trong thư mục gốc.
- Tìm dòng có tiền tố wp_ và thay đổi.
$table_prefix = 'wp_ga2807_'; - Đổi tên tất cả bảng cơ sở dữ liệu WordPress mặc định.
RENAME TABLE wp_comments TO wp_ga2807_comments;
RENAME TABLE wp_commentmeta TO wp_ga2807_commentmeta;
RENAME TABLE wp_links TO wp_ga2807_links;
RENAME TABLE wp_options TO wp_ga2807_options;
RENAME TABLE wp_postmeta TO wp_ga2807_postmeta;
RENAME TABLE wp_posts TO wp_ga2807_posts;
RENAME TABLE wp_terms TO wp_ga2807_terms;
RENAME TABLE wp_termmeta TO wp_ga2807_termmeta;
RENAME TABLE wp_term_relationships TO wp_ga2807_term_relationships;
RENAME TABLE wp_term_taxonomy TO wp_ga2807_term_taxonomy;
RENAME TABLE wp_usermeta TO wp_ga2807_usermeta;
RENAME TABLE wp_users TO wp_ga2807_users; - Thay thế tất cả các trường hợp
wp_trongwp_ga2807_usermetavàwp_ga2807_options(trước làwp_usermetavàwp_options).
UPDATE wp_ga2807_options SET option_name = REPLACE(option_name, 'wp_', 'wp_ga2807_') WHERE option_name LIKE 'wp_%';
UPDATE wp_ga2807_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'wp_ga2807_') WHERE meta_key LIKE 'wp_%'; - Plugin tạo bảng riêng trong cơ sở dữ liệu. Quan trọng phải đổi tên các bảng này. Ví dụ WooCommerce là plugin phổ biến. Để đổi tên bảng WooCommerce, chạy các truy vấn sau.
RENAME TABLE wp_woocommerce_api_keys TO wp_ga2807_woocommerce_api_keys;
RENAME TABLE wp_woocommerce_attribute_taxonomies TO wp_ga2807_woocommerce_attribute_taxonomies;
RENAME TABLE wp_woocommerce_downloadable_product_permissions TO wp_ga2807_woocommerce_downloadable_product_permissions;
RENAME TABLE wp_woocommerce_order_itemmeta TO wp_ga2807_woocommerce_order_itemmeta;
RENAME TABLE wp_woocommerce_order_items TO wp_ga2807_woocommerce_order_items;
RENAME TABLE wp_woocommerce_payment_tokenmeta TO wp_ga2807_woocommerce_payment_tokenmeta;
RENAME TABLE wp_woocommerce_payment_tokens TO wp_ga2807_woocommerce_payment_tokens;
RENAME TABLE wp_woocommerce_sessions TO wp_ga2807_woocommerce_sessions;
Lưu ý: Bạn có thể thay đổi tiền tố cơ sở dữ liệu nhờ plugin. 'Change Table Prefix' là plugin tiện lợi cho việc này.
4. Quyền Người Dùng Cơ Sở Dữ Liệu Chặt Chẽ
Quyền người dùng chặt chẽ giúp bảo mật cơ sở dữ liệu WordPress tốt hơn. Người dùng MySQL được chỉ định trong file wp-config.php nên có quyền hạn chế. Trong quá trình cài đặt, người dùng cơ sở dữ liệu có tất cả đặc quyền để tạo bảng và đối tượng cần thiết nhưng đây chỉ là biện pháp tạm thời. Sau cài đặt, người dùng MySQL chỉ cần đặc quyền ĐỌC DỮ LIỆU và GHI DỮ LIỆU.
5. Tạo Bản Sao Lưu
Tạo bản sao lưu trước khi thay đổi bất kỳ thứ gì trên trang web hoặc cơ sở dữ liệu. Tôi nhắc lại, hãy tạo bản sao lưu! Việc tạo bản sao lưu định kỳ rất hữu ích trong trường hợp bị nhiễm mã độc. Bạn chỉ cần khôi phục bản sao lưu và xóa các file bị nhiễm.
Tuy nhiên, ngay cả khi khôi phục bản sao lưu, lỗ hổng mà kẻ tấn công khai thác vẫn chưa được giải quyết. Bạn có thể đăng ký dịch vụ đánh giá lỗ hổng và kiểm thử xâm nhập của Astra để phát hiện tất cả backdoor ẩn và lỗ hổng bảo mật trên trang web.
6. Xóa Bảng Tùy Chỉnh
Khuyến nghị xóa các bảng tùy chỉnh khỏi cơ sở dữ liệu sau khi gỡ bỏ mở rộng trang web, nếu không theo thời gian bạn sẽ tích tụ đống bảng không sử dụng. Một số plugin có tùy chọn tự động xóa toàn bộ dữ liệu khỏi trang web và cơ sở dữ liệu khi gỡ cài đặt.
Lưu ý: Chỉ xóa bảng của plugin mà bạn chắc chắn không cài lại vì một khi xóa bảng tùy chỉnh thì không thể quay lại.
Bài viết liên quan: 7 lỗi WordPress phổ biến mà mọi người mắc phải
Kết Luận
Dù áp dụng mọi biện pháp đúng đắn, không thể đảm bảo an toàn 100%. Hacker luôn tìm cách mới để truy cập trang web và cơ sở dữ liệu. Cài đặt tường lửa là cách tốt nhất để bảo vệ WordPress khỏi các yêu cầu đe dọa sắp tới. Với Tường lửa Astra lo lắng cho bảo mật trang web, bạn có thể tập trung phát triển doanh nghiệp.
Tìm thấy bài viết hữu ích? Hãy chia sẻ với bạn bè trên Facebook, Twitter, LinkedIn.