Javascript 范围/Firefox 扩展中的安全问题
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 从新创建的窗口访问它。谢谢。
看起来很正确。事实上,这是大多数教程和书籍教授模拟私有方法和属性的一种方式。
不,您无法阻止一个扩展影响另一个扩展。
原因是:
- 扩展名是重命名为具有 *.xpi 文件扩展名的 Zip 存档文件。
- 扩展名是使用 JavaScript 方言以纯文本文件编写的
- 任何其他扩展名都可以随意打开和访问您的浏览器可以访问的任何文件。
如果其他扩展想要读取您的变量mySecureValue
它可以通过以下方式执行此操作:
- 访问扩展名 *.xpi 文件(使用 nsIFile 从
profile/extensions
文件夹中读取它) - 解压缩它 nsIZipReader
- 从源文件中读取变量
mySecureValue
!
最不幸的原因是Mozilla Firefox没有在扩展之间实现任何形式的权利分离。每个扩展都可以对每个人做任何事情。它甚至可以超过外壳代码并造成任意的其他损害。
您唯一可以尝试的就是混淆您的秘密数据。这虽然不会阻止,但可能只会使攻击复杂化。
相关文章:
- 关于ajax的安全问题
- AngularJs基于角色的菜单显示安全问题
- Http响应拆分安全问题的XMLHTTPRequest/Response用例的Filter实现
- 为什么我不能强制下载受污染的画布,为什么这是一个安全问题
- 让用户通过javascript访问cookie是一个安全问题
- 使用不受信任的字符串(require.js)调用require()会引发安全问题
- Openlayers IE安全问题
- 如何应对iframe安全问题
- 使用 javascript 创建用户帐户时存在 Firebase 安全问题
- 依赖于jquery和css的html标记中的安全问题
- XMPP Strophe.JS应用程序安全问题
- 在javascript中操纵信用卡号是否会导致安全问题
- Ajax 回调断点安全问题
- 安全问题是将我的访问者带到一个危险的下载页面
- Openlayer 3 安全问题
- 将 JavaScript 变量传递给 PHP 变量的安全问题
- 读取 JS 数组的安全问题
- 防止 iframe 安全问题
- ES2015模板字符串安全问题
- 关于chrome安全问题的Canvas to DataURI()