PowerScan
TC

Chrome 設定檔與反偵測瀏覽器設定檔:真正的差異在哪裡

指紋瀏覽器 · 閱讀約 9 分鐘 · 作者:PowerOps

圖片:Unsplash

Chrome 設定檔只隔離你的資料,不會隔離你的裝置、時鐘或連線。本文說明界線究竟畫在哪裡,以及什麼情況下值得跨過這條線。

Chrome 設定檔隔離的是你的資料,不是你的裝置。這是最簡短的答案,也說明了為什麼以 Chrome 設定檔搭建的多帳號環境一開始運作順暢,過一陣子卻悄悄失靈。

你在 Chrome 建立的每個設定檔,在磁碟上都有專屬的資料夾。Cookie、瀏覽紀錄、儲存的密碼、擴充功能和書籤都放在這個資料夾裡,不會流出去。資料夾以下的一切則是共用的:同一個作業系統、同一套繪圖堆疊、同一組字型、同一個時鐘、同一條網路連線。只要網站去讀取裝置訊號,就會看到同一台電腦在替你所有的設定檔作答。

Chrome 設定檔真正隔離了什麼

Chrome 設定檔原本是為了讓一家人共用一台筆電而設計,在這個用途上表現很好。它提供的隔離在其適用範圍內是真實有效的。

這涵蓋了身分中「儲存」的那一半,而且做得很完整。如果你的困擾只是個人帳號和客戶後台共用同一個瀏覽器、導致被登出,那麼 Chrome 設定檔就能解決,讀到這裡就夠了。

每個 Chrome 設定檔都共用什麼

很多人很晚才發現:Chrome 設定檔只在資料周圍畫了一道界線,其他什麼都沒有。在這道界線之下,每個設定檔回報的都是同一台機器,因為它本來就是同一台機器。

裝置身分

開啟兩個 Chrome 設定檔,問它們各自是什麼,得到的答案完全一樣:螢幕尺寸與像素比、回報的處理器核心數、平台與 User-Agent、WebGL 回傳的顯示卡字串、網頁在畫面外繪製文字再讀回像素所得到的 Canvas 雜湊值、讓振盪器通過瀏覽器音訊圖形所產生的音訊雜湊值,以及透過量測候選字型中的文字所推斷出的字型清單。這些值都不存放在設定檔資料夾裡,所以切換設定檔時不會有任何改變。

兩個帳號回報相同的 Canvas 雜湊值、相同的 WebGL 渲染器字串與相同的字型清單,就是同一台電腦上的兩個帳號。網站不需要推測,它讀到的是事實。

網路路徑

每個 Chrome 設定檔都從同一個位址離開你的機器。代理伺服器設定屬於瀏覽器執行個體,而該執行個體裡的設定檔無法擁有自己的代理。Chrome 在 Windows 與 macOS 上採用系統代理,命令列參數則會套用到瀏覽器的所有行為。因此你所有的設定檔都從同一個地方、同一個國家、在同一個時刻抵達網站。

時鐘與地區設定

時區來自作業系統,在多數環境中,主要語言也是。為某個設定檔更改其中任何一項,就等於為所有設定檔、乃至電腦上的其他一切都改了。這是最不起眼的一項。代理在某個國家、時鐘卻在另一個國家,是很明顯的不一致;即使你用別的方法解決了網路路徑,Chrome 也無法只為單一設定檔修正時鐘。

為什麼共用的那一半很重要

建立關聯的成本很低。網站不需要證明兩個帳號屬於同一個人,只需要一個值得細看的理由,而在宣稱互不相干的帳號之間出現相符的裝置數值,就是這樣的理由。

還有第二項代價,而且更早浮現。帳號一多,Chrome 設定檔本身也會出現實務上的問題:

逐層比較

層級Chrome 設定檔反偵測設定檔
Cookie 與網站儲存資料每個設定檔各自獨立每個設定檔各自獨立
瀏覽紀錄、書籤、擴充功能每個設定檔各自獨立每個設定檔各自獨立
Canvas、WebGL 與音訊數值機器上所有設定檔共用每個設定檔各自產生並儲存,因此每次開啟都保持相同
字型、螢幕與平台機器上所有設定檔共用每個設定檔各自設定,並作為一組協調一致的組合產生
時區與地區設定取自作業系統每個設定檔各自設定,並與網路路徑所回報的國家相符
網路路徑整個瀏覽器共用一條路徑每個設定檔一個代理,在帳號接上之前先經過測試
管理方式一排頭像名稱、編號、備註、群組、資料夾與搜尋
自動化啟動參數本機 API,可啟動設定檔並回傳除錯端點

Chrome 設定檔其實就夠用的情況

很多時候就夠了。把這點說清楚,比長篇大論地推銷更有價值。

在這些情況下,共用的裝置身分是準確的。你就是一個人使用一台電腦,每個設定檔都回報同一台機器,這是對現實的如實陳述,沒有任何原本不存在的事情被推論出來。

一旦帳號本來就應該互不相干,共用的那一半就不再準確了:不同的客戶、不同的店面、不同的測試環境,各自都該像是不同的使用者。這時相同的裝置數值所描述的,是一段你從未打算呈現的關係。

反偵測設定檔多了什麼

反偵測設定檔保留了 Chrome 設定檔本來就有的一切,然後接手 Chrome 留作共用的三個層級。

這三者的重點都是一致性。每次開啟都回報不同裝置的設定檔,描述的是一台沒人擁有的硬體。真正有用的目標,是一台看起來普通、之後每次造訪都保持原樣的裝置。

管理這一半,在有人親身體驗過沒有它的日子之前,總是被低估。設定檔有名稱、編號、備註與標籤,可以放進群組與資料夾,也可以搜尋,所以任何人都可以直接喊出「42 號設定檔」,同事就知道指的是哪一個。從列表中開啟設定檔時,它的身分與網路路徑會一併帶上,沒有任何一個步驟需要有人記得去設定。

從 Chrome 設定檔遷移

直覺的做法是把 Chrome 設定檔資料夾整個複製過去,然後繼續使用。請忍住。複製過去的資料夾會帶著 Cookie 和仍然有效的工作階段,再交給一個回報的裝置與這些工作階段原本建立時不同的瀏覽器。這項變化是看得見的,而且會在第一次開啟時就發生,這正是最糟的時機。

比較慢的做法反而更穩當。

  1. 每個帳號記下一列,即使目前一個 Chrome 設定檔裡放了好幾個帳號,也要分開計算。
  2. 先建立代理庫。加入各個端點、測試它們,並記錄每一個實際回報的國家。供應商對端點的描述總是偏樂觀。
  3. 每個帳號建立一個設定檔,並在第一次登入前先指派網路路徑。第一個工作階段會決定該帳號「正常」的樣子,所以值得一次做對。
  4. 把時區與地區設定調整為網路路徑所回報的國家,然後不要再動。
  5. 在新的設定檔內重新登入。沒錯,這代表每個帳號都要做一次兩步驟驗證,可能還要確認電子郵件。這是一次性的成本,換來的是一個確實在日後持續使用的裝置上建立的工作階段。
  6. 用幾週的時間,每次搬幾個帳號。把所有帳號擠在某個星期二下午一次搬完,對每個帳號而言都是同時發生的行為模式改變。
  7. 把 Chrome 留給它擅長的事:你自己的電子郵件、你自己的網路銀行,以及那些光明正大屬於你自己的帳號。

在關閉舊設定檔之前,先匯出你需要的東西。書籤與儲存的密碼可以乾淨地從 Chrome 匯出。Cookie 則值得留下不帶走,因為遷移的重點就是讓工作階段在新環境內建立。

坦白的總結

Chrome 設定檔完整解決了共用 Cookie 儲存區的問題,也僅止於此。對許多人來說,Cookie 儲存區就是問題的全部,再疊上更多工具,只是把力氣花在他們並不存在的難題上。

不過,如果你的帳號應該互不相干,那麼 Chrome 設定檔底下共用的裝置身分,就在做一件你從未要求它做的事。這就是那條界線。你站在界線的哪一邊,決定了這份比較中的其他一切。

最後必須明說一個但書:以上內容並不構成任何許可。條款禁止持有多個帳號的服務,即使你把這些帳號隔離開來,仍然是禁止的。請把環境分開,用於你有權進行的工作。

所有文章 · 開始掃描