簡體   English   中英

檢測瀏覽器中已安裝的擴展程序?

[英]Detect installed extensions in browsers?

是否可以通過JS檢測用戶在其瀏覽器上安裝了哪些擴展/插件? 用例是一個特定的chrome擴展程序, Autofill在隱藏的zip字段中設置了一些文本值,導致某些驗證失敗,我想向用戶顯示此擴展程序可能會產生問題的消息。

對於Firefox:的第一個代碼段: AddonManager.jsm-MDN

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getAllAddons(function(aAddons) {
  // Here aAddons is an array of Addon objects
});
// This code will execute before the code inside the callback

必須在特權javascript中運行此代碼,而不是在選項卡中。 您可以嘗試使用specialPowers盡管我不知道它是如何工作的。

要從您的站點運行特權腳本,您將必須創建一個firefox插件並將addEventListener添加到您的站點,就像列出插件的按鈕一樣,您需要在其上附加特權函數。

使用插件可以啟用/禁用插件,但是用戶會發現這很煩人,因為插件有時會在安裝時做一些令人討厭的事情。

特別是對於Chrome擴展程序,只有某些擴展程序是可檢測的,因此這不是一個很好的方法,但據我所知,不再有任何可靠的方法來檢測瀏覽器擴展程序。

對於您要檢測的擴展,您將需要其擴展ID和其Web可訪問資源。

有些擴展程序具有可通過Web訪問的資源,而有些則沒有。 如果沒有可通過Web訪問的資源,則將無法檢測到該擴展名。

要查找可訪問Web的資源,您將需要查看擴展chrome.manifest文件。 它會告訴您是否存在可通過Web訪問的內容。 例如, chrome.manifest文件可能會說:

內容Web開發人員content / web-developer / contentaccessible =是

通常,查找瀏覽器擴展不是很有效,因為您必須提前知道要檢測哪些擴展,而很多時候卻無法檢測到。

另外,這是我嘗試在此處執行相同操作時使用的一個很好的鏈接

在JavaScript中,檢查zip字段在隱藏時是否已更改,並向用戶顯示擴展名可能引起問題的警告。

對於Firefox,您可以使用Mochitest / SpecialPowersAPI來完成

https://developer.mozilla.org/en-US/docs/SpecialPowers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM