我寫了一個擴展來搜索書籤並打開用戶的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)
我是否正確地思考?是否真的有安全問題?有沒有辦法從我的擴展中「沙箱」執行腳本,和/或禁用腳本的權限?
對於擴展的用戶來說這可能是一件非常糟糕的事情,所以請認真思考問題。