Safari 在私密瀏覽中加雜訊,Safari 26.0 起限制已知指紋腳本。WebKit 官方說了限制什麼,又沒限制什麼。
「Safari 能防指紋追蹤嗎?」答案要分兩層說。Safari 不會像 Tor Browser 那樣讓所有使用者看起來一模一樣,也不會預設對每個網站的 API 呼叫加雜訊。依 WebKit 自己的發行說明,它有兩層:Safari 17 起在私密瀏覽中增加的保護,以及 Safari 26.0 起對被歸類為「已知指紋腳本」的腳本施加的限制。
重點速覽
- 據 WebKit 的 Safari 17.0 說明,Safari 17.0 在私密瀏覽中加入了「對可用於指紋辨識的 Web API 加雜訊」,並攔截已知追蹤器與指紋腳本。
- 據 WebKit 的 Safari 26.0 說明,Safari 26.0 讓已知指紋腳本無法可靠讀取螢幕尺寸、硬體並行數、SpeechSynthesis 語音清單、Apple Pay 付款能力、Web Audio 回讀、2D Canvas 等 API。
- 這些腳本也不能寫入長期儲存,不能讀取查詢參數和
document.referrer。 - 保護取決於腳本是否被辨識為已知指紋腳本,未被收錄的腳本並未被描述為受限。
- IP 位址、TLS 握手等伺服器端訊號,以及瀏覽器引擎本身的身分,不在這些說明的範圍內。
兩層保護,而不是一個開關
反指紋思路通常有兩種。統一化讓大量使用者回傳相同的值,Firefox 和 Tor 的 resistFingerprinting 即是如此。加雜訊則擾動輸出,讓追蹤者拿不到穩定的值,詳見我們的 Canvas 雜訊文章;DuckDuckGo 瀏覽器兩者混用。
WebKit 文章描述的做法又不同:針對已知會做指紋辨識的腳本,一般腳本不受影響。好處是網站相容性佳,代價是依賴分類。
第一層:私密瀏覽(Safari 17)
WebKit 的 Safari 17.0 文章列出了私密瀏覽的改動,與指紋相關的有兩項:攔截已知追蹤器與指紋腳本,以及對可指紋化的 Web API 加雜訊。另有攔截連結中已知的追蹤參數、緩解把子網域對應到第三方 IP 的追蹤器、攔截 CNAME 偽裝的追蹤器。
該文沒有說明雜訊如何產生、作用於哪些 API,因此我們不做具體斷言;它也沒說這些保護適用於一般(非私密)視窗。除非你讀到的 WebKit 頁面另有說明,請當作私密瀏覽功能看待。
第二層:已知指紋腳本(Safari 26.0)
Safari 26.0 說明描述的改動只針對 Safari 辨識出的指紋腳本:
| 受限項目 | 相關深度文章 |
|---|---|
| 螢幕尺寸 | 螢幕解析度指紋 |
| 硬體並行數 | 硬體並行數與裝置記憶體 |
| SpeechSynthesis 語音清單 | 語音合成指紋 |
| Web Audio 回讀 | 音訊指紋 |
| 2D Canvas | Canvas 指紋偵測 |
| Apple Pay 付款能力,以及原文所說的「更多」 | — |
WebKit 的措辭是這些腳本被阻止「可靠地存取」這些 API。文章沒有說明具體是加雜訊、固定值還是回傳空值,我們不去猜測。除讀取 API 外還有兩項限制:已知指紋腳本不能設定 Cookie 或 LocalStorage 這類長期的腳本寫入儲存,也不能讀取用於導覽追蹤的狀態,即查詢參數和 document.referrer。
Safari 的做法沒涵蓋什麼
- 未被收錄的腳本:規則依賴分類,Safari 沒有歸類的腳本並未被描述為受限,從未被標記過的網站自有第一方程式碼就是典型例子。
- 網路層訊號:無論用什麼瀏覽器,伺服器都看得到你的 IP 和 TLS 握手,見 TLS 指紋詳解。
- 引擎身分:網站仍能判斷對方是 WebKit,在 iPhone 上所有瀏覽器都是如此。我們不假定 iOS 上的 Chrome 或 Firefox 會繼承 Safari 的隱私設定,文中引用的 WebKit 文章也沒這麼說。
- 以狀態為基礎的追蹤是另一層:智慧型追蹤防護(ITP)處理 Cookie、儲存與 Referrer,不處理計算出來的指紋。
穩定性同樣值得留意:指紋只有保持不變時才對追蹤者有用,而現實中的指紋本身就會隨瀏覽器更新、設定變動而漂移,詳見指紋如何隨時間衰減。
自己測一測
先在 Safari 一般視窗開啟我們的指紋檢測,再在私密視窗開啟,比對哪些值讀得到、重新整理後是否改變。BrowserInsight 是第一方頁面,所有採集都在你的瀏覽器本機完成,因此「已知指紋腳本」規則預期不會作用於它。本工具顯示頁面能讀到什麼,不會告訴你 Safari 的保護是否生效,結論需要你自己判斷。技術背景請讀瀏覽器指紋技術完全指南。
常見問題
Safari 能完全阻止指紋辨識嗎?
不能。WebKit 描述的是對已知指紋腳本的限制和私密瀏覽中的額外保護,不是全面保證。
一般瀏覽時這些保護是開啟的嗎?
Safari 26.0 說明描述的已知腳本限制沒有限定在私密瀏覽;Safari 17.0 的新增項則明確列在私密瀏覽之下。
Safari 會讓我的指紋和別人一樣嗎?
文中引用的 WebKit 文章都沒這麼說。其表述的目標是阻止已知腳本可靠讀取裝置特徵。


