Hướng dẫn sử dụng file .htaccess để block Bots và ban địa chỉ IP

  • Saturday 14/03/2020

Để sử dụng htaccess ngăn ngừa truy cập trái phép hoặc đốt hết băng thông của host thì bạn cần nắm được các thông tin bên dưới.

Xác định các đối tượng cần ngăn chặn.

Có một số cách để tìm hiểu:

  • Xem trong log của host hoặc các thống kê của Google về website .
  • Kiểm tra các cơ sở dữ liệu của người dùng Agent (nếu website có tổ chức ghi lại các thông số -logs) .
  • Cập nhật danh sách các website độc hại từ blacklist được public trên thế giới.

Khi đã hiểu, chúng ta mới làm bước tiếp theo. Vì đơn giản nếu bước này chưa xong thì bạn sẽ không biết là mình định chặn cái gì.

Chặn chương trình với .htaccess

Nếu chưa có file .htaccess trong thư mục gốc của trang web thì bạn cần tạo ra nó đã nhé. Sau đây là thí dụ số 1:

Sử dụng User-agent agent

# Để loại bỏ các bot

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^BadBot

RewriteRule ^(.*)$ http://tên-miền-muốn-gửi-sang

Cách làm này dựa theo user-agent, chẳng hạn ở trên thì user-agent có chứa từ “BadBot”. Thật đơn giản đúng không? Khi máy chủ web kiểm tra có bot mà user-agent có chứa chuỗi bắt đầu với “BadBot”. Khi đó nó sẽ redirects sang cái trang mà bạn định link đến.

Nếu muốn chặn nhiều bot thì chỉ cần thêm [OR] vào nữa là xong, ví dụ:

# thêm [or]

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^BadBot [OR]

RewriteCond %{HTTP_USER_AGENT} ^EvilScraper [OR]

RewriteCond %{HTTP_USER_AGENT} ^FakeUser

RewriteRule ^(.*)$ http://tên-miền-muốn-gửi-sang

Đoạn mã trên khác ví dụ trước ở chỗ nó chặn 3 cái cùng 1 lúc. Lưu ý các từ “[OR]” tùy chọn sau hai tên bot đầu tiên: điều này cho phép máy chủ biết có nhiều bot trong danh sách.

Chặn qua Referer

Chặn không cho website khác lấy hình ảnh, file,… của host bạn và cũng không cho nó dùng iframe,..để đánh cắp băng thông của host:

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^http://.*1-vài-ký-tự-trong-domain\.com [NC]

RewriteRule .* – [F]

Mã này sẽ trả về kết quả ‘403 Forbidden’- báo lỗi. Kết quả cuối cùng: người dùng trên trang web đó sẽ thấy một hình ảnh bị hỏng, liên kết bị lỗi,..và băng thông của host sẽ không còn bị đánh cắp.

Dưới đây là mã cho chặn nhiều hơn một trang web:

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^http://.*tên-miền-1\.com [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://.*tên-miền-2\.com [NC,OR]

RewriteCond% (HTTP_REFERER) ^ http:// tên-miền-cuối-trong-danh-sách .* \. Com [NC]

RewriteRule .* – [F]

Cấm địa chỉ IP truy cập website

Đôi khi bạn chỉ không muốn một người nào đó (hoặc bot) truy cập vào trang web của bạn cả. Một cách đơn giản để ngăn chặn chúng là cấm địa chỉ IP:

order allow,deny

deny from 192.168.1.1

deny from 234.45.67.89

deny from 123.45.67.89

allow from all

Ví dụ trên cho thấy làm thế nào để chặn các địa chỉ IP cụ thể. Nếu muốn chặn cả 1 dải IP, cũng rất đơn giản:

order allow,deny

deny from 192.168.

deny from 123.0.0.

allow from all

Đoạn mã trên sẽ chặn bất kỳ địa chỉ IP bắt đầu với “192,168.” hoặc “123.0.0.” truy cập vào trang web.

Nếu cần, ta cũng có thể chặn bất kỳ ISP nào

order allow,deny

deny from fpt-chẳng-hạn.com

deny from sub-domain.domain.com

allow from all

Lưu ý khi sử dụng .htaccess

Như bạn thấy, .htaccess là một công cụ rất mạnh để kiểm, cấu hình website. Phải thật cẩn thận và chính xác khi thao tác nhé. Nếu có bất kỳ sai sót nào, kể cả là đánh sai cả 1 khoảng trắng trong file .htaccess, máy chủ sẽ trả về 1 trang Error 500 trang thay vì hiển thị trang web.Vì vậy hãy chắc chắn để sao lưu file .htaccess của bạn trước khi thực hiện bất kỳ thay đổi.

Rate this post