什麼是防偵測瀏覽器?白話說明

防偵測瀏覽器會讓每個帳號擁有自己的儲存空間、自己的裝置身分與自己的網路路徑。這在實務上代表什麼,又不代表什麼。
一般的網頁瀏覽器是圍繞一個假設設計的:只有一個人在使用它。這個假設深植其中的程度遠超過多數人的想像,這也是為什麼在單一瀏覽器中管理多個帳號,總是一再出問題。
防偵測瀏覽器移除了這個假設。你也會看到它被稱為防指紋瀏覽器或多帳號瀏覽器。它不是讓一個瀏覽器假裝成好幾個人,而是讓每個帳號擁有一個完整的專屬環境。
一般瀏覽器在你的帳號之間共用了什麼
在同一個瀏覽器中開啟兩個帳號,即使是在兩個視窗中,它們的共通點也遠比分頁所顯示的多:
- 一個 Cookie 容器。你在使用某個帳號時,網站設下的 Cookie,會在你使用另一個帳號時被同一個網站讀取。
- 一個儲存區。Local Storage、Session Storage 與 IndexedDB 是依網站而非依帳號劃分的,因此兩個工作階段讀寫的是同樣的紀錄。
- 一個裝置身分。螢幕尺寸、時區、語言、字型、顯示配接器,以及 Canvas 和 WebGL API 回傳的值,都是機器的屬性,兩個帳號回報的完全相同。
- 一條網路路徑。除非有其他東西介入,兩個帳號都從同一個位址離開你的電腦。
無痕視窗對前兩項有幫助,對後兩項則毫無作用。它會在關閉時清除儲存內容,這也意味著每次都要白費重新登入的功夫。
防偵測瀏覽器中的設定檔是什麼
設定檔不是書籤資料夾,也不是儲存的登入資訊。它是一個瀏覽器環境:磁碟上的一個目錄,存放某個帳號完整的瀏覽器狀態,再加上使用該狀態時所採用的身分與網路路徑。
在 PowerOps 中,一個設定檔包含四個部分,且每一部分都與其他設定檔相互獨立:
| 部分 | 內容 |
|---|---|
| 瀏覽器目錄 | Cookie、Local Storage、IndexedDB、快取、瀏覽紀錄與擴充功能狀態,存放在專屬的資料夾中 |
| 裝置身分 | 回報給網站的螢幕、平台、地區設定、時區、字型與顯示相關的值 |
| 網路路徑 | 此設定檔所連線的代理,從代理庫指派,並在使用前經過驗證 |
| 瀏覽器版本 | 建立此設定檔時所採用的確切瀏覽器版本,並加以記錄,讓它明天開啟時仍保持相同 |
為什麼一致性比隱藏更重要
常見的錯誤是把指紋當成必須躲避的東西。把它當成必須保持一致的東西,會更有用。
網站會讀取數十個值。單獨來看,它們都不起眼。合在一起,它們會形成一個形狀,而引人注意的不是不尋常的形狀,而是自相矛盾的形狀:一個宣稱是 Windows 平台的瀏覽器,卻回報只安裝在 macOS 上的字型,或是時區在一個國家、位址卻在另一個國家。彼此不一致的值,是比任何單一數值更強的訊號。
防偵測瀏覽器做不到的事
值得直接說清楚,因為這個主題上的許多文章並沒有這麼做。
- 它無法讓設定檔不可能被辨識。任何宣稱如此的人都是在猜測,這種說法背後沒有任何測量作為依據。
- 它無法凌駕平台的規則。如果某項服務禁止持有一個以上的帳號,隔離這些帳號並不會取得許可。
- 它無法修復行為違反平台規範的帳號。隔離只是把環境分開,並不會改變環境內所做的事。
它能做到的是具體且可檢查的:獨立的儲存空間、協調一致且穩定的裝置身分、每個設定檔各自的網路路徑,以及帳號每次開啟時都相同的環境。
誰真正需要一個
任何一個人或一個團隊,需要在彼此不該看到對方的環境之間工作的地方。代理商要把客戶的工作分開。QA 工程師要在固定的瀏覽器、地區設定與螢幕尺寸上重現錯誤。電商團隊要把市集、供應商與商店的後台分隔開來。任何一天的工作需要先登出某個服務、才能登入另一個服務的人。
如果你在某項服務上永遠只有一個帳號,一般瀏覽器就夠了。一旦有了兩個,共用的 Cookie 容器就開始浪費你的時間。

