User Agent là gì
User Agent là một thông tin quan trọng trong các yêu cầu HTTP gửi từ trình duyệt web đến máy chủ. Nó cho phép máy chủ nhận biết trình duyệt, hệ điều hành, phiên bản và các thông tin khác về người dùng cuối. Tuy nhiên, đôi khi có những User Agent độc hại hoặc gian lận gửi yêu cầu đến máy chủ, gây ra các vấn đề bảo mật hoặc chiếm dụng tài nguyên không mong muốn.
Ví dụ bên dưới website của khách tôi có User Agent là Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
đang request rất nhiều vào server điều này làm tràn tài nguyên gây ra chậm web thậm chí lỗi 503 nếu tài nguyên máy chủ không đáp ứng đủ.
Cách chặn User Agent bằng htaccess
Để giải quyết vấn đề này, htaccess là một trong những công cụ mạnh mẽ để chặn User Agent không mong muốn. htaccess (HyperText Access) là một tệp cấu hình được sử dụng trên máy chủ Web Apache/HTTPD để kiểm soát và tuỳ chỉnh nhiều khía cạnh của trang Web. Với htaccess, bạn có thể thiết lập các quy tắc để chặn hoặc chuyển hướng các yêu cầu từ những User Agent không mong muốn, giúp bảo vệ trang Web khỏi các cuộc tấn công và lọc bớt lưu lượng không cần thiết.
Để bắt đầu chặn User Agent với htaccess, bạn cần truy cập vào máy chủ Web và tạo hoặc chỉnh sửa tệp .htaccess trong thư mục gốc của trang Web. Nếu tệp .htaccess đã tồn tại, hãy đảm bảo sao lưu nó trước khi thực hiện các thay đổi.
Sau khi mở tệp .htaccess, bạn có thể thêm các quy tắc chặn User Agent bằng cách sử dụng cú pháp sau:
Trong đó, user_agent_1, user_agent_2 và user_agent_3 là các User Agent mà bạn muốn chặn. Bạn có thể thêm hoặc xóa các dòng “RewriteCond” tùy thuộc vào số lượng User Agent bạn muốn chặn.
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} user_agent_1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} user_agent_2 [NC,OR] RewriteCond %{HTTP_USER_AGENT} user_agent_3 [NC] RewriteRule ^(.*)$ - [F]
Ví dụ thực tế: Cần chặn 2 User Agent sau
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" [NC]
RewriteRule .* - [F]
Sau khi bạn đã thêm quy tắc chặn vào tệp .htaccess, lưu lại và tải lại trang web. Bây giờ, khi các User Agent được chỉ định trong quy tắc cố gắng truy cập vào trang web, họ sẽ nhận được mã lỗi 403 Forbidden, không cho phép truy cập.