我有一个 HTTPS 站点,在 IE6 和 7 中显示(错误地)一个对话框,内容如下:
此页面包含安全和不安全的项目
您想显示不安全的项目吗?
在任何合适的浏览器中都不会发生这种情况,但该站点是公司站点,并且许多客户仍在使用 Windows 2000 和 IE6。
我熟悉(并已排除)导致此消息的以下可能原因:
-
随页面加载的一个或多个资源具有http://
代替https://
- 这是显示错误的唯一合法原因,并且也会在工作浏览器中导致相同的消息。Fiddler http://www.fiddler2.com/fiddler2/可以识别非安全加载的资源,因此很容易修复。
-
IE行为 http://msdn.microsoft.com/en-gb/library/ie/ms531079%28v=vs.85%29.aspx .htc
加载文件以提供 DHTML 功能 - 这些文件通常被视为未加密,即使是从https://
URL,即使在 IE6 刚刚推出时,它们也变得毫无用处。首先使用这些并不是一个好主意。
-
IE 将空帧视为不安全资源 https://stackoverflow.com/questions/541837, so <iframe src=""
or <iframe src="about:blank"
两者都会导致此错误。这很容易在代码中找到并修复。
-
在使用 ActiveX XMLHTTP 组件时,IE5 过去常常以不安全的方式发送 AJAX 请求。我认为这在 IE6 及以上版本中不是问题。
-
IE 6 或 7 不支持 Data-URI,并且不会显示,但如果 CSS 中包含任何数据,也会导致不安全警告。我们为 IE 有不同的 CSS,但不使用它们。
-
脚本标记源中的 Javascript 协议链接报告为不安全 http://blogs.msdn.com/b/ieinternals/archive/2009/06/22/https-mixed-content-in-ie8.aspx: <script type="text/javascript" src="javascript:void(0)">
通过清除即可轻松避免src
属性(感谢埃里克!)
-
不随页面或动态加载外部库,也不使用 CDN。我们确实使用了一些第三方插件,但它们是安全交付的,并且不会动态加载任何其他内容。
这里有很多关于这个 IE 错误的信息,但到目前为止我发现的所有内容都指向我已经消除的上述问题之一。
IE6 和 7 中是否还有其他错误可能导致此错误?
有什么方法可以识别 IE 认为哪些资源是不安全的吗?
我找到了问题的根源,但需要一些挖掘。
Firstly Eric Law https://stackoverflow.com/users/126229/ericlaw已经想出了一个原型工具(exe) http://www.bayden.com/dl/scriptfreesetup.exe in 另一个答案 https://stackoverflow.com/questions/96382/how-to-tell-what-files-ie-thinks-are-nonsecure/1022020#1022020这有助于确定问题。
非安全资源是:
data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=
问题是 IE6 不支持数据 URI,所以我们不使用它们。那么这是从哪里来的呢?
事实证明 jQuery UI 1.8 是问题所在,特别是修复另一个错误 http://bugs.jqueryui.com/ticket/7233在CSS中:
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
/* http://bugs.jqueryui.com/ticket/7233
- Resizable: resizable handles fail to work in IE if transparent and content overlaps
*/
background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=);
}
看起来像其他人也发现了这个问题 http://bugs.jqueryui.com/ticket/7233#comment:15, and 已修复 http://bugs.jqueryui.com/ticket/7390在最新的 jQuery UI CSS(1.9 或更高版本)中。
我的解决办法是用空白 gif 的常规 URL 替换它,问题就解决了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)