【发布时间】:2012-11-04 04:37:06
【问题描述】:
我有一个 HTTPS 站点,它在 IE6 和 7 中显示(错误)一个对话框,内容如下:
此页面包含安全和非安全项目
您要显示不安全的项目吗?
这在任何适当的浏览器中都不会发生,但该网站是公司网站,许多客户仍在使用 Windows 2000 和 IE6。
我熟悉(并已消除)此消息的以下可能原因:
-
页面加载的一个或多个资源具有
http://而不是https://- 这是显示错误的唯一合法原因,并且也会在工作浏览器中导致相同的消息。 Fiddler 可以识别加载不安全的资源,所以这很容易解决。 -
IE behaviour
.htc文件被加载以提供 DHTML 功能 - 即使从https://URL 传递过来,这些文件通常也被视为未加密,这使得它们即使在 IE6 是新的时候也毫无用处。首先使用这些不是一个好主意。 -
IE treats empty frames as nonsecure resources,所以
<iframe src=""或<iframe src="about:blank"都会导致这个错误。这很容易在代码中找到和修复。 -
在使用 ActiveX XMLHTTP 组件时,IE5 用于将 AJAX 请求作为不安全的方式发送。我认为这在 IE6 及更高版本中不是问题。
-
IE 6 或 7 不支持数据 URI,并且不会显示,但如果有任何包含在 CSS 中也会导致不安全警告。我们有不同的用于 IE 的 CSS 不使用它们。
-
Javascript protocol links in the source for script tags report as nonsecure:
<script type="text/javascript" src="javascript:void(0)">通过清除src属性轻松避免(感谢 Eric!) -
不加载外部库,随页面或动态加载,不使用 CDN。我们确实使用了一些第三方插件,但它们是安全交付的,不会动态加载任何进一步的内容。
这里有很多关于这个 IE 错误的信息,但到目前为止我发现的所有问题都指向我已经消除的上述问题之一。
IE6 和 7 中是否还有其他可能导致此错误的错误?
有什么方法可以识别 IE 认为哪个资源是不安全的?
【问题讨论】:
标签: https internet-explorer-7 internet-explorer-6 fiddler