是否允许从远程服务器向页面注入javascript文件?

Nim*_*Nes 0 google-chrome chromium google-chrome-extension

我正在为客户开发Chrome扩展程序,希望我将远程javascript文件嵌入到特定页面中.

这甚至是允许的吗?例如我知道在Firefox上这样的扩展不会得到AMO的批准.

如果允许,尽可能使其安全的最佳方法是什么?(已经使用https来否定中间人的攻击)

感谢所有提前:)

小智 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)在扩展端,下载脚本"文档",然后用公钥解码.验证它是否是有效的脚本文件.

这样,您将只接受并执行您知道由私钥所有者签名的脚本.