我正在为客户开发Chrome扩展程序,希望我将远程javascript文件嵌入到特定页面中。
这是否允许?例如我知道在Firefox上这样的扩展将不会被AMO批准。
如果允许,尽可能使其安全的最佳方法是什么? (已经使用https来否定中间人的攻击)
提前感谢所有人:)
答案 0 :(得分:5)
这种情况并不罕见,有很多扩展会这样做,所以如果你小心的话我不希望你被拒绝。但是,请密切关注新的CSP(内容安全策略)更改,这些更改可能会影响此功能:https://mikewest.org/2011/10/secure-chrome-extensions-content-security-policy
截至目前,有几种方法可以实现这一目标:
1)您可以在后台页面中使用XMLHttpRequest下载代码,然后使用chrome.tabs.executeScript将其注入网页。
2)您可以从内容脚本执行相同的操作,因为内容脚本也可以使用跨域XMLHttpRequest。
3)您可以创建一个内容脚本,在页面中创建一个元素,其中“src”属性指向外部脚本。
其他安全性
为了使其尽可能安全,https将是关键。您可以通过实际编码或签署脚本来提供更高级别的安全性。例如:
1)创建公钥/私钥对,公钥包含在扩展名中,私钥用于在脚本准备就绪时对脚本进行编码。
2)完成服务器端的脚本代码,然后使用私钥对其进行编码。
3)在扩展端,下载脚本“document”,然后用公钥解码。验证它是否是有效的脚本文件。
这样,您只接受并执行您知道由私钥所有者签名的脚本。