15 đoạn .htaccess hữu ích cho trang WordPress
Việc cấu hình tốt cho file .htaccess là tối cần thiết cho bất kì một admin nào, vì nó có thể bảo vệ website hay blog của các bạn và giảm thiểu đáng kể những thành phần cố tình muốn hack trang web của các bạn. Nếu các bạn giỏi về quản trị server hay hiểu rõ về . htaccess thì khỏi phải bàn, ...
Việc cấu hình tốt cho file .htaccess là tối cần thiết cho bất kì một admin nào, vì nó có thể bảo vệ website hay blog của các bạn và giảm thiểu đáng kể những thành phần cố tình muốn hack trang web của các bạn.
Nếu các bạn giỏi về quản trị server hay hiểu rõ về .htaccess thì khỏi phải bàn, nhưng nếu các bạn cũng gà mờ giống như mình thì những đoạn code mà mình chia sẻ bên dưới sẽ cực kì hữu ích. Các bạn chỉ cần copy và sử dụng chúng theo các tính năng mà nó mang lại.
Thông thường, thì mặc định trong file .htaccess sẽ có đoạn code như sau :
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Vì nó là mặc định nên chúng ta sẽ không thêm hay xoá bất kì dòng nào cả (trừ phi các bạn hiểu về nó). Và dưới đây là những đoạn mà chúng ta sẽ thêm vào tuỳ theo tính năng mà nó mang lại.
1. Cấm truy xuất đến file .htaccess
Nếu các bạn không muốn bất kì ai có thể thấy được bạn cấu hình cái gì trong file .htaccess thì đoạn code bên dưới làm rất tốt điều đó.
# Denies access to all .htaccess files <Files ~ "^.*.([Hh][Tt][Aa])"> Order Allow,Deny Deny from all Satisfy all </Files>
2. Ngăn ngừa tấn công vào file wp-config.php
File wp-config.php là file chứa tất cả các cấu hình như user và password của database. Đây là những thông tin rất quan trọng cần được bảo vệ. Trong đoạn code bên dưới, các bạn chỉ cần thay thế kí tự xx.xx.xx.xxx là địa chỉ IP từ máy admin, điều đó có nghĩa là chỉ có admin mới được truy xuất file này. Khi chỉnh sửa các bạn cũng nhớ là bỏ kí tự # ở phía trước đi nhé.
# Protects wp-config <Files wp-config.php> Order Allow,Deny # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </Files>
3. Ngăn ngừa các cuộc tấn công từ XML-RPC DDoS
Mặc định thì WordPress hỗ trợ XML-RPC, và đây cũng chính là điểm yếu để các hacker khai thác và tấn công. Để bảo vệ nó thì các bạn chỉ cần thay thế dòng xx.xx.xx.xxx là địa chỉ IP của admin là được.
# Protects XML-RPC, prevents DDoS attack <FilesMatch "^(xmlrpc.php)"> Order Deny,Allow # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </FilesMatch>
4. Bảo vệ khu vực admin
Sẽ không bao giờ là dư thừa khi các bạn cần phải bảo vệ những kẻ lạ mặt truy xuất vào khu vực admin trên trang web. Và lần này cũng như những đoạn code bên trên, các bạn chỉ cần đặt vào những IP được phép truy cập vào khu vực này bằng việc thay thế những kí tự xx.xx.xx.xxx hoặc yy.yy.yy.yyy.
# Protects admin area by IP 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 yy.yy.yy.yyy </LIMIT>
5. Ngăn ngừa liệt kê thư mục
Có rất nhiều bạn khi quản trị trang WordPress đã không để ý việc vô hiệu hoá tính năng này. Vì nếu không, thì ai cũng có thể liệt kê được những file có trong các thư mục như media upload, plugin.. như hình bên dưới.
Rất may là đoạn code bên dưới sẽ giúp các bạn giải quyết được vấn đề này. Khi người dùng cố tình vào các thư mục , thì nó sẽ tự động chuyến đến trang thông báo lỗi 403.
# Prevents directory listing Options -Indexes
6 Ngăn chặn Brute Force Attack
Brute Force Attack là một dạng tấn công mà các hacker lấy thông tin username hoặc thông tin cá nhân từ các tài khoản, rồi dùng một phần mềm tự động tạo mật khẩu cho tới khi nó có thể đăng nhập được vào hệ thống. Để có thể giảm thiểu loại tấn công này, các bạn chỉ việc copy đoạn code bên dưới vào file .htaccess.
# Prevents username enumeration RewriteCond %{QUERY_STRING} author=d RewriteRule ^ /? [L,R=301]
7. Loại bỏ các spammer và bots.
Nếu các bạn nghi ngờ bị tấn công bởi những địa chỉ IP nào đó, thì chỉ việc thay thế nó bằng những kí tự xx và yy bên dưới.
# Blocks spammers and bots <Limit GET POST> Order Allow,Deny Deny from xx.xx.xx.xxx Deny from yy.yy.yy.yyy </Limit> Allow from all
8. Ngăn ngừa image hotlinking
Image hotlinking là một thuật ngữ ám chỉ một ai đó lấy hình ảnh bằng việc copy luôn đường dẫn URL hình ảnh từ website của các bạn, và hiển thị nó trên website của họ mà không có sự cho phép của các bạn. Nếu các bạn cảm thấy ngứa con mắt khi ai đó làm việc này, thì chỉ việc thay thế địa chỉ website mà họ sử dụng hình ảnh của các bạn vào.
# Prevents image hotlinking RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite2.com [NC] RewriteRule .(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]
9. Hạn chế truy xuất trực tiếp vào plugin & theme PHP files
Thật là nguy hiểm nếu ai đó có thể truy xuất trực tiếp vào các file này mà không thèm xin ý kiến các bạn. Chỉ cần copy đoạn code bên dưới. là các bạn đã có thể đá đít những kẻ lạ mặt cố tính muốn phá website của các bạn.
# Restricts access to PHP files from plugin and theme directories RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*.php)$ - [R=404,L]
10. Cài đặt permanent redirects
Nếu trang web của các bạn có một số link đã bị xoá, hoặc cập nhật bởi những link mới, thì đoạn code bên dưới sẽ giúp các bạn tự động chuyển link cũ (oldurl) tới link mới (newurl).
# Permanent redirects Redirect 301 /oldurl1/ http://yoursite.com/newurl1 Redirect 301 /oldurl2/ http://yoursite.com/newurl2
11. Đưa khách truy cập đến trang bảo trì.
Có đôi lúc chúng ta cần thời gian để bảo trì website, và không thể để khách viếng thăm web của chúng ta thấy được công việc còn đang dang dở, việc tự động đẩy họ vào trang bảo trì (maintenance.html ) sẽ là cần thiết.
# Redirects to maintenance page <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REMOTE_ADDR} !^123.456.789.000 RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC] RewriteCond %{REQUEST_URI} !.(jpe?g?|png|gif) [NC] RewriteRule .* /maintenance.html [R=503,L] </IfModule>
12. Ngăn chặn truy cập vào WP includes
Wp-includes folder chứa những file cốt lõi nhất của trang WordPress, việc bảo vệ folder này là tối cần thiết.
# 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>
13 Ngăn ngừa tấn công kiểu XSS
Chỉ cần copy đoạn code bên dưới là các bạn có thể ngăn chặn được loại tấn công này.
# 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>
14 Bật tính năng browser caching
Bằng việc copy đoạn code bên dưới, là các bạn có thể bật được tính năng cache, sẽ giúp trang web của các bạn chạy nhah hơn và đáp ứng khách hàng tốt hơn.
# Enables browser caching <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
15 Cài đặt tuỳ chỉnh error page
Các bạn tạo những trang thông báo lỗi cho riêng mình như custom-403.html , custom-404.html rồi upload nó vào folder gốc. Sau đó dùng đoạn code bên dưới để nó chuyển tới những trang này.
# Sets up custom error pages ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html
Mình hy vọng là những đoạn code bên trên sẽ giúp ích cho các bạn trong việc bảo vệ và duy trì website hay blog của các bạn.
Chuyên Mục: Hacker - Bảo Mật, WordPress
Bài viết được đăng bởi webmaster