Để chặn lệnh wget truy cập vào website của bạn, bạn có thể sử dụng một số phương pháp. Dưới đây là một số cách phổ biến:
Mục lục
1. Chặn thông qua .htaccess (dành cho Apache web server)
Bạn có thể thêm các dòng sau vào file .htaccess của website để chặn các user agent cụ thể như wget:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Wget [NC]
RewriteRule ^.* - [F,L]2. Chặn thông qua cấu hình của Nginx
Nếu bạn đang sử dụng Nginx, bạn có thể thêm các dòng sau vào file cấu hình của Nginx:
location / {
# Block access for user agents containing "Wget"
if ($http_user_agent ~* "Wget") {
return 403;
}
# Other configs
}
3. Sử dụng tường lửa ứng dụng web (Web Application Firewall – WAF)
Các WAF như ModSecurity cho Apache hoặc Nginx, hay các dịch vụ như Cloudflare, có thể được cấu hình để chặn các user agent cụ thể. Ví dụ với ModSecurity:
SecRule REQUEST_HEADERS:User-Agent "Wget" "id:12345,deny,status:403,msg:'Wget access denied'"
4. Sử dụng robots.txt
Mặc dù không phải là phương pháp bảo mật hoàn toàn, nhưng bạn có thể thêm dòng sau vào file robots.txt để yêu cầu các bot tuân thủ không truy cập:
User-agent: Wget Disallow: /
5. Kiểm tra và chặn theo IP
Nếu bạn nhận thấy rằng các yêu cầu từ wget đến từ các dải IP cụ thể, bạn có thể chặn các dải IP đó trực tiếp từ tường lửa của server.
6. Giới hạn số lượng yêu cầu từ cùng một IP
Bạn có thể cấu hình server để giới hạn số lượng yêu cầu từ cùng một IP trong khoảng thời gian nhất định, giúp ngăn chặn các bot như wget thực hiện nhiều yêu cầu liên tục.
Ví dụ cho Nginx
http {
...
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
...
location / {
limit_req zone=one burst=5;
}
}
}Ví dụ cho Apache
<IfModule mod_ratelimit.c>
SetEnvIf Request_URI .* no-limit
SetEnvIf Request_URI ^/allowedpath no-limit
<Location />
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 400
SetEnv rate-initial-burst 500
</Location>
</IfModule>Kết hợp các phương pháp trên sẽ giúp bạn tăng cường bảo mật và giảm thiểu rủi ro từ các truy cập không mong muốn thông qua wget.