Cách block User Agent với Nginx

( Máy chủ ảo giá rẻ ) Người dùng Nginx có thể dễ dàng block request GET / POST bất kỳ dựa theo User Agent.

Block request GET / POST với mục đích khi website thường xuyên bị spam mail với nhiều IP khác nhau, tuy nhiên header của chúng giống hệt nhau, vì vậy Nginx block là phương án rất hiệu quả.

Lưu ý : Ngoài ra, bạn có thể ứng dụng để block Bot, Spider, chống crawl…

Hướng dẫn cách block User Agent với Nginx

Mở file cấu hình tên miền, trong section server, hãy thêm đoạn code if sau:

server {
listen 80 default_server;

root /home/hocvps.com/public_html;
index index.php index.html index.htm;
server_name hocvps.com;

# case sensitive matching
if ($http_user_agent ~ (Antivirx|Arian)) {
return 403;
}

# case insensitive matching
if ($http_user_agent ~* (netcrawl|npbot|malicious)) {
return 403;
}

….
}
Sau đó restart lại Nginx.

Trong đoạn trên có chỗ bạn lựa chọn:

  • case sensitive matching: phân biệt chữ in hoa, chữ in thường
  • case insensitive matching: không phân biệt in hoa, in thường

Để tìm được header cần filter và chúng ta sẽ phải phân tích file access.log trước.

Để test kết quả chúng ta có thể dùng lệnh wget kèm theo option –user-agent, ví dụ:

wget –spider –user-agent “malicious bot” http://domain.com

Đây là đoạn code dùng để block request spam comment tham khảo thêm:

#Block Spam comment
location ~* /wp-comments-post\.php$ {
if ($http_user_agent ~* “x11; linux i686; rv:17” ) {
return 403;
}
}
Chúc bạn thành công với cách block User Agent với Nginx

Đọc thêm:

0/5 (0 Reviews)

Leave a Reply