Chrome现在阻止从https到http的所有jsonp请求?

Bra*_*oat 29 security https jsonp google-chrome securitydomain

最近,Chrome已停止显示通过jsonp加载的数据并显示错误

[已屏蔽] https://user.example.com/category/12345上的页面运行了来自http://livedata.example.com/Data.svc/jsonp/GetData?category=12345&callback=_jsp&_1346417951424=的不安全内容.

它仍适用于所有其他浏览器,并已在运行Chrome的几台不同计算机上得到确认.

我之前看到过这个问题的唯一提法是,该页面是从Google自己的某个域提供的(我猜是Google Apps的安全功能吗?),这是现在在最新版本中已在所有域上启用的内容Chrome?

理想情况下,我们不希望在我们的livingata子域上启用https,因为它会导致额外的服务器负载,数据全部公开,因此没有迫切需要加密它.

bob*_*nce 19

它绝对应该阻止它 - 它是不安全的并打破了HTTPS的承诺.

通过创建<script>指向目标的资源来完成JSONP资源获取.这意味着目标服务器可以在包含页面上运行它喜欢的任何JavaScript,因此任何中间人都可以将任意脚本注入到所谓的受HTTPS保护的页面中(例如添加键盘记录器,或者完全替换页面内容) ).<script>来自HTTP 的HTTPS页面不比普通的HTTP页面安全.

如果您希望HTTPS页面能够访问它,则需要提供数据源的HTTPS版本.否则浏览器应该至少产生警告.Chrome现在默认为阻止不会改变问题的性质,它只是给你额外的推动你需要正确修复它.

  • 安全点很好,但是当您使用不提供CORS或HTTPS的第三方服务时会发生什么? (2认同)
  • @bobince你提到键盘记录器和其他人作为一个问题.在这方面如何使用https资源帮助?你仍然可以做你刚刚提到的所有事情,它只是在一个安全的渠道上完成的.我的意思是如果你包含一个https脚本,例如jQuery,你怎么能确定jQuery没有记录你的笔画,并转发信息?如果担心安全问题,则应禁止所谓的"安全"站点上的所有第三方脚本.我不确定https是否符合条件.也许第三方脚本不允许添加... (2认同)

小智 7

<script src="//domain.com/script.js"></script> 如果远程服务器允许HTTPS,则解决问题... //如果https访问站点,则会自动将协议设置为https.