Tổng hợp thủ thuật bảo mật WordPress với file .htaccess

Tập tin .htaccess là một tập tin cấu hình, cho phép bạn kiểm soát các tập tin và thư mục trong directory và tất cả các thư mục con của chúng. Tên của nó được viết tắt từ chữ hypertext access và được hỗ trợ bởi hầu hết các loại máy chủ.

Đối với nhiều người dùng WordPress, lần đầu tiên làm quen với tập tin .htaccess là khi họ tùy chỉnh các thiết lập permalink của blog/website. Để có được những permalinks đẹp, VD: https://wpcanban.com/sample-post.html thay vì https://wpcanban.com/?p=123, chúng ta cần thêm một đoạn mã như thế này vào tập tin .htaccess:

# 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

Nếu tập tin .htaccess không tồn tại, bạn có thể tự tạo và tải nó lên. Tất cả những gì bạn phải làm là tạo ra một tập tin văn bản trống, lưu nó với tên .htaccess và tải nó vào thư mục gốc, nơi cài đặt WordPress.

Bạn cũng cần phải đảm bảo tập tin .htaccess là writeable để WordPress có thể thêm mã permalink phù hợp vào tập tin .htaccess. WordPress.org khuyên người dùng nên để permissions là 644 cho tập tin .htaccess.

Tập tin .htaccess trong WordPress không chỉ được sử dụng cho permalinks. Nó còn được biết đến với khả năng tăng cường sự bảo mật cho blog/ website. Hàng triệu người dùng WordPress sử dụng tập tin .htaccess để bảo vệ blog/ website của họ khỏi thư rác, tin tặc và các mối đe dọa an ninh khác.

Trong bài viết này, tôi sẽ chia sẻ với các bạn một số đoạn mã dành cho tập tin .htaccess, giúp blog/ website của bạn an toàn hơn. Ngoài ra còn có một số chức năng bổ sung khác mà tôi tin rằng bạn sẽ thấy chúng hữu ích.

.htaccess là một tập tin rất quan trọng, bạn cần phải tạo một bản backup trước khi tiến hành chỉnh sửa nó để tránh các sai sót đáng tiếc có thể xảy ra.

Tổng hợp thủ thuật với file .htaccess

1. Bảo vệ tập tin .htaccess

Tập tin .htaccess kiểm soát hầu như toàn bộ blog/website của bạn nên việc bảo vệ nó khỏi sự xâm nhập trái phép là một việc rất quan trọng. Đoạn mã sau đây sẽ giúp ngăn chặn hacker truy cập vào tập tin .htaccess của bạn.

<files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</files>

2. Bảo vệ tập tin wp-config.php

Một tập tin quan trọng không kém là wp-config.php. Tập tin cấu hình này chứa các thông tin đăng nhập cơ sở dữ liệu WordPress của bạn cũng như các thiết lập bảo trì quan trọng khác. Do đó, bạn nên vô hiệu hóa việc người lạ truy cập vào nó.

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

3. Bảo vệ thư mục wp-content

Thư mục wp-content là một trong những khu vực quan trọng nhất của WordPress. Đây là nơi chứa các tập tin quan trọng như themes, plugins, các tập tin đã được upload (hình ảnh và video) và các tập tin cache. Do đó, nó là một trong những mục tiêu chính của tin tặc.

Bạn có thể giải quyết các mối đe dọa bằng cách tạo ra một tập tin .htaccess riêng cho thư mục /wp-content/ và thêm đoạn mã sau vào:

Order deny,allow
Deny from all
<Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
Allow from all
</Files>

Sau đó bạn cần phải upload tập tin .htaccess này vào thư mục /wp-content/. Nó thường nằm ở đường dẫn: www.yourwebsite.com/wp-content/. Việc làm này sẽ cho phép các tập tin media được tải lên bao gồm XML, CSS, JPG, JPEG, PNG, GIF,Javascript. Tất cả các loại tập tin khác sẽ bị từ chối.

4. Chặn include-only files

Có một số tập tin mà người dùng không bao giờ được phép truy. Bạn có thể chặn việc truy cập vào những tập tin này bằng cách thêm đoạn mã sau vào tập tin .htaccess:

# 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>

5. Hạn chế truy cập khu vực Admin

Một điểm thường bị tấn công bởi các tin tặc là khu vực Admin (quản trị) WordPress. Nếu truy cập được vào khu vực này, chúng có thể làm hầu hết mọi thứ trên blog/website của bạn.

Để làm cho khu vực này an toàn hơn, bạn cần tạo ra một tập tin .htaccess mới cho riêng nó và thêm đoạn mã dưới đây vào:

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

Hãy thay đổi 12.34.56.78 thành địa chỉ IP của bạn (bạn có thể tìm ra địa chỉ IP của mình tại What Is My IP?). Sau đó upload tập tin .htaccess vào thư mục /wp-admin/. Nó thường nằm ở đường dẫn: www.yourwebsite.com/wp-admin/.

Nếu muốn thêm các địa chỉ IP khác, bạn chỉ cần thêm tiếp vào mục allow from. Các địa chỉ IP được ngăn cách nhau bởi 1 dấu phẩy và dấu cách.

6. Cấm một ai đó truy cập website

Nếu bạn biết địa chỉ IP của một người nào đó là nguy hiểm, bạn hoàn toàn có thể cấm họ truy cập blog/website của bạn bằng cách sử dụng đoạn mã dưới đây.

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
</Limit>

7. Chuyển hướng khách truy cập đến trang bảo trì

Nếu bạn muốn chuẩn bị cho những điều tồi tệ nhất có thể xảy ra, tôi khuyên bạn nên tạo một trang HTML cơ bản có tên là maintenance.html, nhằm thông báo cho khách truy cập rằng blog/website của bạn đang gặp một chút vấn đề nhưng sẽ hoạt động trở lại trong một thời gian ngắn. Khi blog/website của bạn gặp vấn đề do bị hack hoặc do lỗi màn hình trắng, chỉ cần thêm đoạn mã dưới đây vào tập tin .htaccess để chuyển hướng tất cả khách truy cập đến thông điệp của bạn tại maintenance.html.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

8. Vô hiệu hoá việc truy cập directory

Cho phép người lạ truy cập các tập tin và thư mục của bạn có thể là một nguy cơ lớn về bảo mật. Để vô hiệu hóa việc truy cập các thư mục, chỉ cần thêm đoạn mã sau đây vào tập tin .htaccess của bạn:

# disable directory browsing
Options All -Indexes

9. Kích hoạt cache cho trình duyệt

Kích hoạt cache (bộ nhớ đệm) cho trình duyệt web là một trong những thủ thuật để tối ưu nhằm tăng tốc blog/website. Khi được kích hoạt, trình duyệt web sẽ cache các trang đã tải trước đó, giúp khách truy cập tiết kiệm thời gian vì họ không cần phải tải lại các tài nguyên. Việc này cũng giúp bạn tiết kiệm băng thông.

Để cho phép kích hoạt bộ nhớ đệm, tất cả những gì bạn cần làm là thêm đoạn mã sau đây vào tập tin .htaccess:

## EXPIRES 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>
## EXPIRES CACHING ##

10. Chuyển hướng URL

301 redirects giúp bạn thông báo cho công cụ tìm kiếm rằng một URL đã chuyển hướng đến một vị trí mới. Chúng có thể được sử dụng để chuyển hướng một trang, thư mục hoặc thậm chí một trang web.

Do đó chúng rất hữu ích khi bạn thay đổi URL của site: có thể là do thay đổi tên miền, thay đổi cấu trúc permalink hoặc chỉ đơn giản là thay đổi tên site.

Để chuyển hướng một vị trí, tất cả những gì bạn cần làm là thêm một dòng với Redirect 301, tiếp theo là vị trí cũ và sau đó là vị trí mới. Bạn có thể xem cách làm việc này trong ví dụ dưới đây:

Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
Redirect 301 /oldfolder/page2.html /folder3/page7.html
Redirect 301 / http://www.mynewwebsite.com/

11. Vô hiệu hóa hotlinking

Hotlinking là việc ai đó chia sẻ hình ảnh từ blog/website của bạn bằng cách liên kết trực tiếp đến URL của hình ảnh. Nó thường xảy ra trên các diễn đàn, tuy nhiều webmaster và blogger chuyên đi copy bài viết của người khác cũng thường làm việc này (đó là một sai lầm vì hình ảnh có thể được loại bỏ khỏi nội dung của bạn bất cứ lúc nào). Hotlinking có thể tác động tiêu cực đến blog/website của bạn. Ngoài việc làm chậm blog/website, nó cũng có thể làm tăng đáng kể chi phí băng thông của bạn.

Thêm đoạn mã dưới đây vào tập tin .htaccess sẽ giúp ngăn chặn những người khác copy và sử dụng bất hợp pháp hình ảnh của bạn. Hãy thay thế các URL của trang web trong đoạn mã bằng URL của riêng bạn.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

Khi một ai đó xem hình ảnh của bạn tại một site khác, họ sẽ nhìn thấy hình ảnh thay thế (link của nó nằm trong dòng cuối cùng của đoạn mã). Bạn có thể sửa đổi hình ảnh này theo ý muốn.

Lưu ý: việc vô hiệu hóa hotlinking có thể gây ra một số vấn đề về hiển thị hình ảnh của bạn trong nguồn cấp dữ liệu RSS.

Trên đây là một số thủ thuật với file .htaccess trong WordPress, tôi hy vọng nó sẽ hữu ích đối với bạn. Mọi ý kiến thắc mắc và đóng góp xin vui lòng gửi vào khung bình luận bên dưới.

Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)

Kham khảo: https://wpcanban.com/wordpress/thu-thuat-wordpress/tong-hop-thu-thuat-voi-file-htaccess-trong-wordpress.html