繁体   English   中英

如何在Firefox附加组件上允许跨域内容脚本而不触发混合内容阻止错误

[英]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版本的插件解决此问题。

指定该权限将导致Sandboxworker在SDK内部而言, content script在文档)简单地得到一个新的XMLHttpRequest的构造,有一个以上的委托人(或“原点”,如果你喜欢)。 这将仅更改对同源策略的评估方式,而不会更改一般性安全策略,尤其是混合内容策略的实施方式。 也就是说:正如您注意到的那样,您仍然无法对HTTP XHR做https。

您无法在内容脚本中使用任何解决方法。 但是,您可以向主脚本发送消息以执行请求,然后将结果(再次通过消息传递)传递回内容脚本。

提交错误 至少应记录此限制。

就个人而言,我不赞成取消它。 混合内容是一个安全问题,除了localhost外,都是安全问题,因此绕过它的任何代码都应该易于在代码审查过程中检测到,例如我提出的建议的来回消息工作(在代码审查过程中引起注意) 。 或者也许只是将其localhost 但是这个决定取决于mozilla平台,附加SDK和安全团队。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM