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