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