您好,登錄后才能下訂單哦!
本文介紹 Nginx 禁止指定 UA 訪問的配置。
UA,即 Http User Agent,在 Nginx 中使用內置變量 $http_user_agent 表示,該信息作為 request header 的一部分被發往 webserver。因此,對 webserver 來說,有一種禁止訪問的方式,就是對 UA 進行判斷。
禁止搜索引擎爬蟲
因為你懂的原因,并不是太希望 Baidu 這類爬蟲來我的網站,所以在 Nginx 中使用 if 對 UA 進行判斷:
if ($http_user_agent ~* "qihoobot|Baidu|Baiduspider|Baiduspider-image|Baiduspider-video|Baiduspider-news|Baiduspider-favo|Baiduspider-cpro|Baiduspider-ads|Baiduboxapp|YisouSpider|EasouSpider|YodaoBot|YoudaoBot|Sosospider|Sogou|^$") { return 444; }
禁止下載工具
if ($http_user_agent ~* "Scrapy|HttpClient|Curl|Wget|Idm|Aria2|Axel|Thunder|Youtube-dl|Movgrab|rtorrent|ctorrent|Transmission-cli|vuze") { return 444; }
禁止國產瀏覽器訪問
if ($http_user_agent ~* "360|360SE|360EE|2345Explorer|maxthon|sogou|theworld|qiyu|green|qq|qqbrowser|tt|liebao|lbbrowser|tao|taobao|coolnovo|saayaa|uc|mi|xiaomi|baidu|yandex|micromessenger|wechat|weibo|douban|suning|iqiyi|alipay|ali-ap|ali-ap-pd|ali-am|ali-tb|ali-tb-pd|ali-tm|ali-tm-pd") { return 444; }
禁止指定系統訪問
也有某些國產系統,例如 aliyun os 這樣的,我也想禁止它的訪問:
if ($http_user_agent ~* "yunos") { return 444; }
結論
根據以上可以看出,要對 UA 進行判斷,規則就是:
if ($http_user_agent ~* "UA關鍵詞") { ... }
不過這種方法缺點很明顯,因為 UA 實在太容易偽造了 ,不過防一下不經偽造的請求(例如國產搜索爬蟲)還是可以的。當然也有些更靠譜的方式,例如對 session 的驗證。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。