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