簡體   English   中英

Firefox擴展中的Javascript范圍/安全問題

[英]Javascript scope / security concern in Firefox extension

我正在開發FireFox擴展程序,並且必須存儲一些我需要保護的值,這些值是安全的,並且無法從其他任何擴展程序/頁面等訪問。

我正在為我的擴展代碼使用設置,如下所示:

if(!namesp) var namesp={};
if(!namesp.anothernamesp) namesp.anothernamesp={};

namesp.anothernamesp = function() {
  var mySecureValue = ''; //is this variable accessible from anything aside from inside the namesp.anothernamesp scope?

  return {
    useSecureValue: function() {
    //do something here with mySecureValue
    }
  };

  function getSecureValue() { //can this method be called from anywhere besides inside the namesp.anothernamesp scope?
    return mySecureValue;
  }

}();

除了我自己的擴展名之外,還有什么方法可以訪問“ mySecureValue”? 為了使該對象可以在擴展程序等中打開的任何窗口全局訪問,我將該對象傳遞給window.openDialog()方法中的窗口,並使用window.arguments從新創建的窗口中訪問它。 謝謝。

似乎很正確。 實際上,這是大多數教程和書籍教授模擬私有方法和屬性的方式。

沒有 ,有沒有辦法可以保持一個擴展名從影響其他分機。

原因如下:

  • 擴展名是Zip存檔文件,重命名為* .xpi文件擴展名。
  • 擴展使用JavaScript方言寫在純文本文件中
  • 任何其他擴展名都可以打開並訪問您的瀏覽器可以訪問的任何文件。

如果其他某個擴展要讀取變量mySecureValue則可以通過以下方式進行讀取:

  • 訪問您的擴展名* .xpi文件(使用nsIFileprofile/extensions文件夾中讀取它)
  • 解壓縮nsIZipReader
  • 從您的源文件中讀取變量mySecureValue

所有這些最不幸的原因是Mozilla firefox在擴展之間未實現任何形式的右分隔。 每個擴展都可以為所有人做任何事情。 它甚至可以執行shellcode並進行其他損害賠償。

您唯一可以嘗試的就是混淆您的秘密數據。 盡管這不會阻止但可能只會使攻擊復雜化。

暫無
暫無

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

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