什麼是浏覽器指紋
“浏覽器指紋”是一種通過浏覽器對網站可見的配置和設定資訊來跟蹤Web浏覽器的方法,浏覽器指紋就像我們人手上的指紋一樣,具有個體辨識度,隻不過現階段浏覽器指紋辨識的是浏覽器。
人手上的指紋之是以具有唯一性,是因為每個指紋具有獨特的紋路、這個紋路由凹凸的皮膚所形成。每個人指紋紋路的差異造就了其獨一無二的特征。
那麼浏覽器指紋也是同理,擷取浏覽器具有辨識度的資訊,進行一些計算得出一個值,那麼這個值就是浏覽器指紋。辨識度的資訊可以是UA、時區、地理位置或者是你使用的語言等等,你所選取的資訊決定了浏覽器指紋的準确性。
對于網站而言,拿到浏覽器指紋并沒有實際價值,真正有價值的是這個浏覽器指紋對應的使用者資訊。作為網站站長,收集使用者浏覽器指紋并記錄使用者的操作,是一個有價值的行為,特别是針對沒有使用者身份的場景。例如在一個内容分發網站上,使用者A喜歡浏覽二次元的内容,通過浏覽器指紋記錄這個興趣,那麼下次使用者不需要登入即可向A使用者推送二次元的資訊。在個人PC如此普及的當下,這也是一種内容分發的方式。
對于使用者而言,建立個人上網行為與浏覽器指紋之間的聯系或多或少都有侵犯使用者隐私的意味,特别是将你的浏覽器指紋和真實的使用者資訊相關聯起來的時候。所幸的是這種方式對于使用者的隐私侵犯比較有限、濫用使用者行為也會透支使用者對網站的好感。
第二代指紋追蹤是裝置指紋技術,發現 IP 背後的裝置。通過 js 擷取作業系統、分辨率、像素比等等一系列資訊,傳到背景計算,然後歸并裝置。
唯一性可以保證,但準确率很難完全保證。主要原因就是在跨浏覽器指紋識别上面。跨浏覽器之後,第二代技術中很重要的 canvas 指紋、浏覽器插件指紋都變了,是以很難把跨浏覽器指紋歸并到同一裝置上。
因為裝置指紋相同,很大機率上是同一台裝置;但是,裝置指紋不同時,不一定不是同一台裝置。
今天分享一個純js擷取浏覽器指紋檢視器
千行代碼,Bug何處藏。 縱使上線又怎樣,朝令改,夕斷腸。