繁体   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