現代互聯網滋生了大量各種各樣的惡意機器人和網絡爬蟲,比如像惡意軟件機器人、垃圾郵件程序或內容刮刀,這些惡意工具一直偷偷摸摸地掃描你的網站,干些諸如檢測潛在網站漏洞、收獲電子郵件地址,或者只是從你的網站偷取內容。大多數機器人能夠通過它們的“用戶代理”簽名字符串來識別。
作為第一道防線,你可以嘗試通過將這些機器人的用戶代理字符串添加入robots.txt文件來阻止這些惡意軟件機器人訪問你的網站。但是,很不幸的是,該操作只針對那些“行為良好”的機器人,這些機器人被設計遵循robots.txt的規范。許多惡意軟件機器人可以很容易地忽略掉robots.txt,然后隨意掃描你的網站。
另一個用以阻擋特定機器人的途徑,就是配置你的網絡服務器,通過特定的用戶代理字符串拒絕要求提供內容的請求。本文就是說明如何在nginx網絡服務器上阻擋特定的用戶代理。
在Nginx中將特定用戶代理列入黑名單
要配置用戶代理阻擋列表,請打開你的網站的nginx配置文件,找到server定義部分。該文件可能會放在不同的地方,這取決于你的nginx配置或Linux版本(如,/etc/nginx/nginx.conf,/etc/nginx/sites-enabled/<your-site>,/usr/local/nginx/conf/nginx.conf,/etc/nginx/conf.d/<your-site>)。
代碼如下: server {
listen 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
....
}
在打開該配置文件并找到 server 部分后,添加以下 if 聲明到該部分內的某個地方。
代碼如下: server {
listen 80 default_server;
server_name xmodulo.com;
root /usr/share/nginx/html;
# 大小寫敏感的匹配
if ($http_user_agent ~ (Antivirx|Arian) {
return 403;
}
#大小寫無關的匹配
代碼如下: if ($http_user_agent ~* (netcrawl|npbot|malicious)) {
return 403;
}
....
新聞熱點
疑難解答