有有效辦法判斷是否是偽造的User Agent的瀏覽嗎?

有沒有辦法辨別那些通過偽造User Agent來訪的用戶?


沒有


沒辦法從UA上判斷,但是可以用 TCP指紋判斷操作系統類型,也許有幫助

TCP/IP stack fingerprinting

比如,通過TCP指紋發現是Windows系統,但是UA是iOS Safari瀏覽器,多少有些問題的。


沒有。

你憑什麼說人家不是瀏覽器。這是歧視。


理論上可以做到,但是得不償失。

完全可以寫個網頁執行一些只能在特定瀏覽器下執行的內容或者只能在特定瀏覽器下看到的按鈕。如果UA是偽造的就看不到了。但是意義何在呢?

還不如直接針對更基本的需求(例如反抓取,反爬蟲)去尋求更具有針對性的解決方案。


所以說前端工程師 應該 以特性來判斷瀏覽器

userAgent 本身就是隨著http請求帶過來的一個字元串的標示。 都已經發生的事,你怎麼判斷呢? 是吧

不過曾經看到過一個網站,就不安利了

你是android 你給我的useragent卻是ios。 竟然直接給我一個alert。 請不要篡改userAgent。

(你可以弄一個userAgent json表 比對一下^_^)

看到這個文案,我在想,普通用戶有幾個知道userAgent。 正常生活中,那個userAgent不是瀏覽器廠商自己定的?

你倒不如直接提示用戶更換瀏覽器呢 ^__^


我覺得我可以說一說……

背景:我維護過一個某瀏覽器廠商的一個UA相關的系統,功能就是通過UA查到這個設備是什麼(一般是移動設備,可以拿到品牌、機型和其他詳細信息)

規模:我離職前庫里有2億多條不重複的UA

之前做各種存儲優化的時候首先考慮的是能不能不讓無效UA入庫

答案是沒絕對辦法,只有相對,但是需要一個完整人工庫和關鍵詞庫

結果是確實降低了很多無效UA入庫


具體瀏覽器要具體看,不同瀏覽器一般都會有各種差異,比如在對css支持以及開放給腳本的許可權之類。根據這些細微區別,是區分一部分偽造ua的


其實樓主是想要防止偽造UA造成盜鏈下載吧。


仿就仿造吧,對服務端會影響什麼嗎?畢竟這是少數


並沒有,User Agent就一段字串,除此之外,沒有其他什麼有趣的東西。


http 協議本質上就是字元串,沒法啊。refer 也沒法。


推薦閱讀:

為什麼很多瀏覽器上面地址欄和搜索欄要分開來?
你為什麼加入海豚瀏覽器?
海豚瀏覽器比其他瀏覽器好在什麼地方?
為什麼safari和chrome不做掃一掃功能?

TAG:網頁瀏覽器 | 移動瀏覽器 |