Trong nội dung bài viết này, HOSTVN sẽ hướng dẫn các bạn bảo mật wordpress bằng htaccess để hạn chế khả năng bị tấn công và đảm bảo an toàn cho website của bạn.
Đối với những bạn có trang web WordPress bị tấn công, bạn sẽ biết rằng tin tặc có xu hướng sửa đổi các tệp trong mã nguồn và sẽ chuyển hướng tất cả lưu lượng truy cập đến một url khác. Thông thường tin tặc sẽ sửa đổi các tệp php nằm trong thư mục chủ đề hoặc tải tệp php lên thư mục tải lên của bạn. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng file .htaccess để hạn chế khả năng bị tấn công cũng như tăng tính bảo mật cho website wordpress của bạn.
WordPress an toàn với htaccess
1. Tắt thực thi PHP trong / wp-content / uploads. danh mục
Để thực hiện việc này, bạn chỉ cần thêm các quy tắc sau vào tệp .htaccess của mình
RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps|js)$ - [NC,F]
2. Bảo vệ wp-config.php. tập tin
Để bảo vệ tệp wp-config.php của bạn khỏi bị truy cập trái phép, chỉ cần thêm quy tắc sau vào tệp .htaccess của bạn.
<files wp-config.php> order allow,deny deny from all </files>
3. Bảo vệ .htaccess khỏi bị truy cập trái phép
Để bảo vệ .htaccess khỏi sự truy cập trái phép của tin tặc, bạn có thể ngăn chúng truy cập tệp thông qua quy tắc này.
<files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
4. Chặn tập lệnh trên nhiều trang web (XSS)
Đoạn mã sau bảo vệ trang web của bạn khỏi một số cuộc tấn công XSS cơ bản, cụ thể là chèn một đoạn mã cố gắng sửa đổi các biến toàn cầu và yêu cầu.
# Blocks some XSS attacks <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F,L] </IfModule>
5. Hạn chế quyền truy cập vào wp-include
Thư mục / wp-include / chứa các tệp WordPress cốt lõi. Không có lý do gì để cho phép bất kỳ ai có quyền truy cập vào nó, kể cả chủ sở hữu và quản trị viên. Vì vậy, để tăng cường bảo mật, cách tốt nhất là hạn chế tất cả quyền truy cập vào nó.
# Blocks all wp-includes folders and 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>
6. Hạn chế quyền truy cập trực tiếp vào các tệp PHP Plugin & Chủ đề
Như đã đề cập trước đó, không có lý do gì để bất kỳ ai có quyền truy cập vào các tệp php trong các plugin và chủ đề, vô hiệu hóa quyền truy cập trực tiếp vào nó là một biện pháp bảo mật tốt.
RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F]
7. Bảo vệ tệp xmlrpc.php
Giờ đây, các chuyên gia đã phát hiện ra một phương pháp mới để tấn công các trang web WordPress thông qua XML-RPC. Phương pháp này tỏ ra hiệu quả khi kết hợp với phương pháp Brute Force truyền thống. Nó sẽ cố gắng sử dụng hết tên người dùng / mật khẩu để đăng nhập vào trang web và thực hiện các lệnh từ xa của hacker. Vì vậy, để hạn chế điều này, hãy chặn quyền truy cập vào tệp xmlrpc.php trên trang web của bạn.
<files xmlrpc.php> order allow,deny deny from all </files>
8. Giới hạn quyền truy cập wp-admin
Nếu bạn đang sử dụng IP tĩnh, bạn có thể muốn giới hạn quyền truy cập chỉ vào wp-admin và chỉ cho phép địa chỉ IP của bạn truy cập. Để thực hiện việc này, bạn cần tạo tệp .htaccess bên trong thư mục wp-admin với nội dung sau:
order deny,allow allow from địa-chỉ-ip-của-bạn deny from all
9. Tìm nhà cung cấp dịch vụ lưu trữ uy tín
Ngoài việc sử dụng .htaccess để tăng cường bảo mật, bạn cũng nên lựa chọn nhà cung cấp hosting uy tín để sử dụng.
Đối với các hosting Linux tại HOSTVN đều sử dụng Cloud Linux đảm bảo hạn chế 100% Local Attack, ngoài ra hệ thống còn được tích hợp phần mềm quét malware và gửi thông báo cho khách hàng mỗi ngày khi phát hiện malware.
Sự kết luận
Tóm lại, chúng ta sẽ có tệp .htaccess hoàn thành như sau:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # Blocks all wp-includes folders and 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> # Blocks some XSS attacks <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On # Disable PHP in Uploads - Security > Settings > System Tweaks > PHP in Uploads RewriteRule ^wp\-content/uploads/.*\.(?:php[1-7]?|pht|phtml?|phps|js)$ - [NC,F] # Disable PHP in Plugins - Security > Settings > System Tweaks > PHP in Plugins RewriteRule ^wp\-content/plugins/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] # Disable PHP in Themes - Security > Settings > System Tweaks > PHP in Themes RewriteRule ^wp\-content/themes/.*\.(?:php[1-7]?|pht|phtml?|phps)$ - [NC,F] </IfModule> # Bock access xmlrpc.php <Files xmlrpc.php> Order deny,allow Deny from all </Files> # Bock access wp-config.php <Files wp-config.php> Order deny,allow Deny from all </Files> # Bock access license.txt <Files license.txt> Order deny,allow Deny from all </Files> # Bock access readme.html <Files readme.html> Order deny,allow Deny from all </Files> # Bock access .htaccess <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
Hi vọng qua bài viết này sẽ phần nào giúp các bạn có thể bảo mật wordpress với htaccess một cách tốt hơn. Bạn cũng có thể muốn xem Top Plugin bảo mật WordPress tốt nhất hiện nay.