如何在 Firefox 附加组件上允许跨域内容脚本而不触发混合内容阻止错误
How to allow cross domain content script on Firefox add-on without firing mixed content blocking errors
我正在开发一个Firefox插件。它是Gmail的内容脚本。在内容脚本上,我向本地主机上运行的服务器发出请求。在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和安全团队。
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- Catching'阻止加载混合活动内容'CORS错误
- 防止在 HTTPS 父级中嵌入 HTTP 帧时出现混合内容错误
- 通过https使用Nivo灯箱时出现混合内容错误
- 从 ajax 中的 HttpResponse() 加载视图时出现混合内容错误
- “混合空格和制表符错误”和“未捕获的语法错误:意外的标记<(第 1 行)”
- 如何在 Firefox 附加组件上允许跨域内容脚本而不触发混合内容阻止错误
- Nivo滑块jQuery导致IE 8中出现混合内容错误
- Visual Studio多设备混合无法获取包信息错误
- 多设备混合应用程序的Web服务错误
- 调用replaceWith会给出“;而不是函数“;错误(将文本节点替换为文本和html的混合)
- 设置混合架构类型错误
- 为什么我的https://请求取消并更改为http://,导致混合请求错误
- 混合代码错误
- 识别可能的错误向量,javascript警报后,混合网站上的网页表单似乎禁用了javascript
- 混合应用程序在上传图像时关闭而不会在logcat中出现任何错误
- 混合内容页:请求一个不安全的样式表错误
- 我怎样才能绕过这个“混合内容”被屏蔽的问题呢?博客错误