Tin Tức

Buy VPS Hong Kong, VPS Taiwan, VPS Vietnam - Asisa VPS Unlimited bandwidth at unbelievably low prices. Cho thuê VPS Hong Kong, Taiwan, Vietnam giá tốt rẻ nhất, không giới hạn băng thông, IP Hong Kong, IP China, IP Viet Nam

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

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

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

Khi sử dụng Nginx, bạn có thể dễ dàng block request GET / POST bất kỳ dựa theo User Agent.

Mình tìm hiểu phương pháp này khi website thường xuyên bị spam email với nhiều IP khác nhau, tuy nhiên điểm chung là header của chúng giống hệt nhau. Nginx block rất hiệu quả.

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

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

Mở file cấu hình tên miền (nếu dùng Script file cấu hình ở đường dẫn /etc/nginx/conf.d/), trong section server, hãy thêm đoạn code if sau:

server {
    listen       80 default_server;

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

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

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

    ....
}

Sau đó nhớ restart lại Nginx.

Tùy 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, tất nhiên bạn sẽ phải phân tích file access.log trước.

Để test kết quả bạn 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 mình dùng để block request spam comment các bạn có  thể tham khảo thêm:

    #Block Spam comment
    location ~* /wp-comments-post\.php$ {
        if ($http_user_agent ~* "x11; linux i686; rv:17" ) {
            return 403;
        }
    }

Thế Giới Số chúc các bạn cài đặt thành công.


 1  1  0  0  0  0


Đăng ký dùng thử CLOUD SERVER miễn phí