[英]How to allow cross domain content script on Firefox add-on without firing mixed content blocking errors
我正在开发Firefox附加组件。 这是Gmail的内容脚本 。 在内容脚本上,我向在localhost上运行的服务器发出请求。 在package.json文件中,我已允许来自本地主机的跨域内容 ,如下所示:
"permissions": {
"cross-domain-content": ["http://127.0.0.1:5000/"]
},
但是,每当我运行插件时,都会出现“阻止加载混合的活动内容”错误。我知道,自Firefox 23起, 就启用了混合内容阻止功能 。有没有办法解决该加载项问题?显而易见的解决方案是使用https在本地主机上运行我的服务器,但是我希望该服务器易于安装并由用户运行,因此我想避免使用该选项,而且该服务器只能在本地主机上运行。即使Chrome浏览器也阻止加载混合的活动内容,也无法通过Chrome版本的插件解决此问题。
指定该权限将导致Sandbox
( worker
在SDK内部而言, content script
在文档)简单地得到一个新的XMLHttpRequest的构造,有一个以上的委托人(或“原点”,如果你喜欢)。 这将仅更改对同源策略的评估方式,而不会更改一般性安全策略,尤其是混合内容策略的实施方式。 也就是说:正如您注意到的那样,您仍然无法对HTTP XHR
做https。
您无法在内容脚本中使用任何解决方法。 但是,您可以向主脚本发送消息以执行请求,然后将结果(再次通过消息传递)传递回内容脚本。
请提交错误 。 至少应记录此限制。
就个人而言,我不赞成取消它。 混合内容是一个安全问题,除了localhost
外,都是安全问题,因此绕过它的任何代码都应该易于在代码审查过程中检测到,例如我提出的建议的来回消息工作(在代码审查过程中引起注意) 。 或者也许只是将其localhost
? 但是这个决定取决于mozilla平台,附加SDK和安全团队。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.