Nội dung
Giới thiệu
Trong quá trình vận hành website, chắc hẳn các bạn đã từng một hoặc nhiều lần bị các Bot scan/scawler vào website để thu thập dữ liệu. Việc thu thập thông tin này có thể đến từ Bot tốt hoặc Bot xấu, tuy nhiên vấn đề chung mà chúng ta gặp phải là khi các Bot này scan/scawler vào website với tần suất lớn và liên tục thì rất dễ gây quá tải tài nguyên Hosting (CPU/Ram), việc này làm ảnh hưởng đến tốc độ tải trang hoặc nặng hơn là có thể gây lỗi website.
Vậy làm sao để chúng ta có thể hạn chế hoặc là chặn các Bot scan/scawler vào website? Thì ở bài viết này, mình sẽ hướng dẫn các bạn cách chặn Bot scan/scawler vào website vô cùng đơn giản thông qua File .htaccess của website.
Ví dụ ở đây website của mình thường bị một số Bot bên dưới scan/scawler vào website. Ở đây mình không nói Bot này là Bot xấu hay tốt, vì nó còn tuỳ thuộc vào từng website. Nên bài viết này mình chỉ hướng dẫn các bạn cách chặn chúng, và bạn chỉ áp dụng cho các Bot mà bạn muốn chặn thôi nhé.
[28/Dec/2023:16:19:51 +0700] "GET /san-pham/dong-co-buoc-5-pha-loai-truc-rong-autonics-ah8k-m566/ HTTP/2" 200 30010 "-" "Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)"
[28/Dec/2023:16:19:59 +0700] "GET /product-tag/a22nl-mma-tya-p102-yc/ HTTP/1.1" 200 1229 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"
AhrefsBotAhrefsBot
[06/Oct/2023:07:36:31 +0700] "GET /robots.txt HTTP/1.1" 404 1238 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
Hướng dẫn thực hiện
Bước 1: Truy cập vào File .htaccess
Đầu tiên các bạn hãy truy cập vào đường dẫn Document root của website cần chặn Bot, ở đây website mình đang cần chặn là damtrungkien.com
, thì mình sẽ truy cập như sau:
Bước 2: Thêm cấu hình chặn
Ở đây bạn có thể sử dụng 1 trong 2 cách tuỳ ý thích của mình, vì về cơ bản chúng đều có chức năng chặn Bot.
Cách 1:
Lưu ý: Nếu bạn muốn thêm Bot vào danh sách chặn, thì các Bot sẽ cách nhau bởi dấu gạch đứng |
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "AhrefsBot/7.0|SemrushBot/7~bl|YandexBot/3.0" [NC]
RewriteRule .* - [F,L]
Cách 2:
Lưu ý: Nếu bạn muốn thêm Bot vào danh sách chặn, thì bạn chỉ cần thêm dòng SetEnvIfNoCase User-Agent “tên_bot” bad_bots là được.
# Block Bot
SetEnvIfNoCase User-Agent "AhrefsBot/7.0" bad_bots
SetEnvIfNoCase User-Agent "SemrushBot/7~bl" bad_bots
SetEnvIfNoCase User-Agent "YandexBot/3.0" bad_bots
<Location />
Order Allow,Deny
Deny from env=bad_bots
Allow from all
</Location>
Dưới đây là hình ảnh minh hoạ khi mình chèn vào .htaccess.
Bước 3: Kiểm tra truy cập của Bot
Để kiểm tra xem Bot đã được chặn thành công hay chưa, bạn có thể kiểm tra access_log của website. Nếu thấy mã trả về là 403 như log bên dưới là đã chặn thành công.
[28/Dec/2023:16:32:47 +0700] "GET /product-tag/ebn104c-15a-30ma/ HTTP/2" 403 23966 "-" "Mozilla/5.0 (compatible; AhrefsBot/7.0;+http://ahrefs.com/robot/)"
Nếu Hosting của bạn có hỗ trợ Terminal hoặc bạn sử dụng VPS, thì bạn có thể kiểm tra nhanh bằng lệnh bên dưới:
curl -A "YandexBot/3.0" -I https://damtrungkien.com
Tổng kết
Như vậy ở trên mình đã hướng dẫn bạn chi tiết cách chặn Bot scan/scawler vào website của mình, từ đó hạn chế việc website bị thu thập dữ liệu từ các Bot xấu và đồng thời giúp giảm tải tài nguyên cho Hosting/VPS.
Chúc các bạn thực hiện thành công.
Các bạn có thể tham khảo thêm các hướng dẫn sử dụng khác tại link bên dưới
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com