用於檢測 Chrome 中安裝的附加元件的工具包已發布

已經發布了一個工具包,它實作了一種檢測 Chrome 瀏覽器中安裝的加載項的方法。 產生的附加元件清單可與其他間接指標(例如螢幕解析度、WebGL 功能、已安裝外掛程式和字型清單)結合,用於提高特定瀏覽器實例被動識別的準確性。 建議的實作會檢查 1000 多個附加元件的安裝。 提供線上演示來測試您的系統。

附加元件的定義是透過分析附加元件提供的可用於外部請求的資源來進行的。 通常,附加元件包括各種附帶文件,例如圖像,這些文件是透過 web_accessible_resources 屬性在附加元件清單中定義的。 在 Chrome 清單的第一個版本中,對資源的存取不受限制,任何網站都可以下載所提供的資源。 在清單的第二個版本中,預設僅允許加載項本身存取此類資源。 在宣言的第三個版本中,可以決定哪些資源可以指派給哪些附加元件、網域和頁面。

網頁可以使用 fetch 方法請求擴充功能提供的資源(例如「fetch('chrome-extension://okb....nd5/test.png')」),傳回「false」通常表示該附加元件未安裝。 為了阻止加載項偵測資源的存在,某些加載項會產生存取資源所需的驗證令牌。 在不指定令牌的情況下呼叫 fetch 總是會失敗。

事實證明,可以透過估計操作的執行時間來繞過對附加資源存取的保護。 儘管在沒有令牌的情況下請求時 fetch 總是返回錯誤,但有和沒有附加元件的操作的執行時間是不同的 - 如果存在附加元件,則請求將比沒有附加元件時花費更長的時間未安裝。 透過評估反應時間,您可以非常準確地確定補充劑的存在。

一些不包含外部可存取資源的附加元件可以透過附加屬性來識別。 例如,可以透過評估 window.ethereum 屬性的定義來定義 MetaMask 附加元件(如果未設定附加元件,「typeof window.ethereum」將傳回值「undefined」)。

來源: opennet.ru

添加評論