云服務(wù)器Nginx禁止指定UA訪問(wèn)的方法
本文介紹 Nginx 禁止指定 UA 訪問(wèn)的配置。
UA,即 Http User Agent,在 Nginx 中使用內(nèi)置變量 $http_user_agent 表示,該信息作為 request header 的一部分被發(fā)往 webserver。因此,對(duì) webserver 來(lái)說(shuō),有一種禁止訪問(wèn)的方式,就是對(duì) UA 進(jìn)行判斷。
禁止搜索引擎爬蟲(chóng)
因?yàn)槟愣脑?,并不是太希?nbsp;Baidu 這類(lèi)爬蟲(chóng)來(lái)我的網(wǎng)站,所以在 Nginx 中使用 if 對(duì) UA 進(jìn)行判斷:
禁止下載工具
禁止國(guó)產(chǎn)瀏覽器訪問(wèn)
禁止指定系統(tǒng)訪問(wèn)
也有某些國(guó)產(chǎn)系統(tǒng),例如 aliyun os 這樣的,我也想禁止它的訪問(wèn):
結(jié)論
根據(jù)以上可以看出,要對(duì) UA 進(jìn)行判斷,規(guī)則就是:
不過(guò)這種方法缺點(diǎn)很明顯,因?yàn)?nbsp;UA 實(shí)在太容易偽造了 ,不過(guò)防一下不經(jīng)偽造的請(qǐng)求(例如國(guó)產(chǎn)搜索爬蟲(chóng))還是可以的。當(dāng)然也有些更靠譜的方式,例如對(duì) session 的驗(yàn)證。