Bài viết là tổng hợp các kiến thức mình tìm hiểu được về bảo mật WordPress.

Các bước cần làm để bảo mật website WordPress của bạn:

Xoá các plugin hoặc theme không sử dụng

Việc xoác các plugin hoặc theme không sử dụng để giảm dung lượng cho hosting đồng thời cũng trách việc hacker có thể khai thác các lỗ hổng từ những plugin này.

Giới hạn file upload trong quản trị WordPress

Mục đích của việc giới hạn file upload trong quản trị là để nếu hacker có chiếm được tài khoản quản trị cũng không thể upload các file *.php,  có mã độc lên website của bạn được. Bạn có thể xem bài viết Giới hạn hoặc thêm định dạng file upload trong WordPress để bảo mật

Tắt tính năng bình luận của WordPress nếu không sử dụng

Nếu website của bạn không cần tương tác với khách hàng hoặc để tránh có các comment spam trong bài viết: nhúng link quảng cáo, chèn khác nội dung không phù hợp với bài viết… thì việc tắt tính năng bình luận là cần thiết.
Cách tắt tính năng bình luận là trong file single.php hoặc các file trong hàm get_template_part có trong file single.php của theme bạn đang sử dụng. Bạn hãy tìm hàm comments_template(); xoá hoặc ẩn nó đi.

Ẩn bình luận trong chi tiết bài viết

Ẩn bình luận trong chi tiết bài viết

Trong file wp-comments-post.php bạn để hàm die(); sau thẻ mở của php

Tắt bình luận trong file wp-comments-post.php

Tắt file xử lý bình luận mặc định của WordPress

Một giải pháp khác thay thế nếu bạn vẫn muốn hiển thị phần bình luận nếu cần tương tác với người đọc đó là: Bạn có thể sử dụng tính năng Bình luận của facebook hoặc sử dụng Plugin Bình luận trong WordPress

Thiết lập chặn truy cập đến file wp-config và các file quan trọng trong WordPress

Để chặn truy cập trực tiếp đến file wp-config.php và các file quan trong của wordpress bạn hãy dán đoạn mã sau vào file .htaccess

<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

# Block the include-only files.
<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>

Giới hạn truy cập đến các file .php trong thư mục wp-content

Giải sử các hacker có thể upload được các file mã độc như web shell lên website của bạn. Thông qua plugin hay một cách khai thác khác nào để upload file trong thư mục wp-content. Chính vì thế bạn cần hạn chế các request tới bất kỳ các file trong thư mục này. Để làm điều đó bạn hãy tạo 1 file .htaccess trong thư mục wp-content và dán đoạn mã sau vào trong file .htaccess

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar|ttf|eof|woff|woff2|otf|json|svg|ico)$">
Allow from all
</Files>

Cài đặt và sử dụng plugin “WP Cerber” để bảo mật website WordPress

Tại sao mình lại khuyên bạn nên sử dụng plugin này, Bởi vì plugin WP Cerber cung cấp một số tính năng rất hữu ích và plugin này cũng khá nhẹ.

Một số tính năng nổi bật của plugin WP Cerber là:

  • Giới hạn số lần đăng nhập sai trong WordPress

  • Đổi đường dẫn đăng nhập mặc định
  • Tắt tính năng dò user

  • Chặn IP
  • Thêm captcha trong trang đăng nhập
  • Ngoài ra còn một số tính năng khác bạn có thể tìm hiểu sâu thêm

Lưu ý: sau khi đổi đường đẫn đăng nhập nếu website của bạn có sử dụng các plugin tạo cache như: W3 Total Cache, WP Super Cache, WP Rocket, LiteSpeed Cache thì bạn hãy thêm slug đường dẫn đăng nhập mới vào danh sách các trang không được lưu vào bộ đệm.

Tắt phần theme-editor.php của website

Tắt phần theme-editor.php để nếu hacker nếu chiếm được tài khoản quản trị của bạn cũng không thể chỉnh sửa trực tiếp trong này được. Cách tắt là trong file wp-config.php bạn thêm đoạn mã dưới đây:

define('DISALLOW_FILE_EDIT',true);

Tắt tính năng debug của WordPress

Mục đích của tính năng debug (tìm lỗi) là để hiển thị những thông báo lỗi của website từ đó bạn có thể tìm nhanh và chích xác các vị trí gây ra lỗi.
Tuy nhiên tính năng này chỉ nên mở khi bạn viết code hoặc check lỗi trong website của bạn. Sau khi check xong bạn phải tắt tính năng debug này để tránh ảnh hướng đến giao diện website cũng như tránh việc hacker có thể thấy những thông báo lỗi từ website của bạn. Từ đó có thể khai thác lỗi.

Xoá thông số phiên bản WordPress của bạn

Để xoá các thông số phiên bản WordPress như hình trên bạn chỉ cần thêm đoạn mã bên dưới vào file functions.php của bạn

/**
 * Hidden current wordpress verions
 */

function tmdev_remove_wordpress_version() {
return '';
}
add_filter('the_generator', 'tmdev_remove_wordpress_version');

/**
 * Remove version in all file css, js in frontend
 */
function remove_version_from_style_frontend( $src ) {
	if ( strpos( $src, 'ver=' ) )
		$src = remove_query_arg( 'ver', $src );
	return $src;
}
add_filter( 'style_loader_src', 'remove_version_from_style_frontend');
add_filter( 'script_loader_src', 'remove_version_from_style_frontend');

Sau khi thêm đoạn code bên trên bạn hãy view-source ( Ctrl + U) để kiểm tra lại thì các đuôi thông số ver sẽ được gỡ bỏ hoàn toàn.

Một số lưu ý bảo mật WordPress quan trọng

    • Cấu hình HTTPS cho website của bạn: Nếu website của bạn không phải là doanh nghiệp quá lớn hay ngân hàng, chính phủ thì chỉ cần cài SSL miễn phí là đủ

    • Thường xuyên sao lưu và backup website ( source code và database ): thường các nhà cung cấp hosting uy tín sẽ hỗ trợ bạn việc này. Nếu không bạn có thể backup định kỳ hàng tuần hay hàng tháng. Tuỳ vào mức độ đăng sản phẩm hay bài viết của bạn.
    • Nên đặt mật khẩu dài >= 14 ký tự bao gồm: chữ số và chứa chữ hoa, chữ thường, số và các ký tự đặc biệt.
    • Xoá các (thành viên) user không sử dụng nữa
    • Không nên để user đăng nhập là: admin, root, system,…
    • Tắt WP CRON nếu không sử dung. Thêm đoạn code define('DISABLE_WP_CRON', 'true'); vào file wp-config.php => Xử lý các sự kiện
    • Cập nhật các phiên bản WordPress và Plugin mới nhất
    • Chọn nhà cung cấp dịch vụ hosting tốt: họ có các phần mềm kiểm tra và chặn các truy cập rác, spam… vì đa phần các bước bảo mật ở trên đều hướng đến việc ngăn chặn và bảo mật từ bên ngoài nhưng còn bên trong ( LOCAL ATTACK ) thì phụ thuộc rất nhiều vào các nhà cung cấp dịch vụ hosting.
    • Không nên sử dụng theme và Plugin Nulled / Cracked
    • Thêm xác thực 2 yếu tố: ( nếu bạn rất ít khi đăng nhập quản trị ) – Bạn tìm hiển thêm trong plugin WP Cerber đã có sẵn tính năng này
    • Nâng cấp phiên bản php >= 7.0
    • Tắt tính năng reset mật khẩu qua mail: Để tắt bạn thêm đoạn code sau vào file functions.php
/**
 * Disable password reset
 */
function tmdev_disable_action_lostpassword() { 
	return false; 
}
add_filter ( 'allow_password_reset', 'tmdev_disable_action_lostpassword' );

 

Bài viết liên quan

post-no-image

Add the Meta Box Upload Multiple Images and multiple metabox

post-no-image

Add the Meta Box Repeat

post-no-image

Kỹ thuật debounce trong javascript – Trì hoãn nhập từ khóa trong ô input

post-no-image

Thêm VS Code snippets

post-no-image

Query only seach by title

post-no-image

Hướng dẫn tạo form có validate, upload file nhiều bước và xử lý ajax