我写了一个扩展来搜索书签并打开用户的URL。
我已经添加书签的JavaScript支持扩展,现在它是由类似这样的东西代码调用脚本:
var bookmark_address; // the address containing javascript:blah();
chrome.tabs.update({'url': bookmark_address});
:
var bookmark_address; // the address containing javascript:blah();
var js = bookmark_address.substr(11);
chrome.tabs.executeScript({'code': js});
以前我曾使用此代码被第一个看起来更好,但实际上并没有太大的区别。他们都需要权限["tabs", "<all_urls>"]
。我现在只在用户选择启用小书签支持时请求权限(由optional permissions)。
问题:
我只是想安全问题。书签由用户添加,因此它们通常是安全,但是因为我的扩展名“调用”脚本,所以它在我的扩展的上下文中执行。该脚本将能够搞乱我的扩展的本地存储和变量。 此外,执行的脚本可能有权执行跨源XMLHttpRequest
。(Docs)
我是否正确地思考?是否真的有安全问题?有没有办法从我的扩展中“沙箱”执行脚本,和/或禁用脚本的权限?
对于扩展的用户来说这可能是一件非常糟糕的事情,所以请认真思考问题。