我刚刚将我的网站从http移动到https,并且IE-9开始在home page处显示不安全的内容警告。这个警告是可以理解的,因为我有一个http调用来获取jquery脚本的googleapi。但是,当我登录并进入内部页面时,尽管大部分图像都是通过http协议从其他服务器传出,但IE并没有发出警告。 所以问题:通过https访问站点时,通过http获取映像是否正常?只有css和js很重要吗?还是必须通过HTTPS获取所有数据?如果是的话,我的方案如何合理(通过http页面上的其他服务器获取图像而不发出警告)?混合内容警告IE:重要的是; CSS,图像,一切?
回答
如果您通过HTTP加载CSS和JS,则攻击者可以注入可执行代码。不幸的是IE会在CSS内执行JavaScript。从同一个域通过HTTP加载图像的问题是,浏览器可能会以纯文本溢出会话标识符,这是违规行为OWASP a9。
您可以在所有的url上使用protocol-relative URL以避免IE中出现此问题。基本上,而不是链接到一个js/image/css通过使用它的完整路径与协议,而是通过忽略协议位并仅使用双斜杠链接到它//。
这将产生所有上述从父页面继承协议的链接的效果。
当然,这取决于您在提供不同文件格式的域上拥有有效的SSL证书。
还有一点需要注意的是,使用数据URI完成的页面或CSS中的图像也可能导致IE中出现混合内容警告。
要找出哪些文件是造成问题,我建议使用Fiddler
也有另一种工具,一个老乡SO用户,埃里克·法写道:
从http://www.bayden.com/dl/scriptfreesetup.exe安装它,你将得到不同混合内容提示,它显示页面上第一个不安全资源的确切URL。该工具基本上是一个原型,您应该在完成后卸载它。它适用于IE8,你应该以管理员身份安装它。
谢谢Moin,相对URL确实解决了这个问题,但我有我得到的场景来自其他服务器的图像,如“https:// 212.75.234.21/path/image.jpg”。现在我们没有其他服务器的域名,我们无法获得针对IP的SSL证书(就我所知)。所以当我显示这些图片时,我必须使用绝对网址。同样,我正在使用cdn中的脚本文件,该文件必须使用绝对url进行引用。但问题是脚本触发混合内容警告,但图像不会产生任何此类警告。 – 2012-07-16 05:39:07
- 1. iframe的混合内容的警告没有混合内容
- 2. Internet Explorer中的混合内容警告
- 3. 在IE标签中的混合内容安全警告
- 4. 跨域的CSS文件链接,在IE中没有混合内容警告?
- 5. 混合内容错误与警告
- 6. 尝试捕捉混合内容警告
- 7. IE PrintTemplate混合上下文警告
- 8. 由JavaScript和图像引起的IE7中的混合内容警告
- 9. 论坛设计的混合内容警告
- 10. 由于CSS背景图像导致的SSL和混合内容
- 11. 由于taglib引起的混合内容警告URI
- 12. 导致混合内容警告的导轨形式
- 13. 浏览器混合内容警告 - 有什么意义?
- 14. IE告诉我,我混合SSL内容时,我不
- 15. Internet Explorer中:混合内容交付警告
- 16. 使用!重要的CSS警告
- 17. 警告是否重要?
- 18. IE 7和IE 8中的HTTPS和HTTP混合内容
- 19. 警告:您的内容是空白的
- 20. 警告/警告/通知中的图像
- 21. 切出的CSS图像容器
- 22. 在IE上使用https iframe避免混合安全/不安全警告
- 23. 警告:IE 11
- 24. HTML/CSS图像和颜色混合
- 25. 混合内容错误
- 26. 混合输入的内容
- 27. SplitterPane中的混合内容
- 28. iframe的混合内容
- 29. Facebook安全内容警告和图像不显示
- 30. 单元内存警告图像
谷歌的jQuery通过https现在提供:https://developers.google.com/speed/libraries/devguide – Thomas 2012-07-14 08:56:34
都在http和https – 2012-07-14 09:17:17