【问题标题】:IE6&7 causes of "This page contains both secure and nonsecure items"“此页面包含安全和非安全项目”的 IE6&7 原因
【发布时间】:2012-11-04 04:37:06
【问题描述】:

我有一个 HTTPS 站点,它在 IE6 和 7 中显示(错误)一个对话框,内容如下:

此页面包含安全和非安全项目

您要显示不安全的项目吗?

这在任何适当的浏览器中都不会发生,但该网站是公司网站,许多客户仍在使用 Windows 2000 和 IE6。

我熟悉(并已消除)此消息的以下可能原因:

  1. 页面加载的一个或多个资源具有http:// 而不是https:// - 这是显示错误的唯一合法原因,并且也会在工作浏览器中导致相同的消息。 Fiddler 可以识别加载不安全的资源,所以这很容易解决。

  2. IE behaviour .htc 文件被加载以提供 DHTML 功能 - 即使从 https:// URL 传递过来,这些文件通常也被视为未加密,这使得它们即使在 IE6 是新的时候也毫无用处。首先使用这些不是一个好主意。

  3. IE treats empty frames as nonsecure resources,所以<iframe src=""<iframe src="about:blank" 都会导致这个错误。这很容易在代码中找到和修复。

  4. 在使用 ActiveX XMLHTTP 组件时,IE5 用于将 AJAX 请求作为不安全的方式发送。我认为这在 IE6 及更高版本中不是问题。

  5. IE 6 或 7 不支持数据 URI,并且不会显示,但如果有任何包含在 CSS 中也会导致不安全警告。我们有不同的用于 IE 的 CSS 不使用它们。

  6. Javascript protocol links in the source for script tags report as nonsecure: <script type="text/javascript" src="javascript:void(0)"> 通过清除 src 属性轻松避免(感谢 Eric!)

  7. 不加载外部库,随页面或动态加载,不使用 CDN。我们确实使用了一些第三方插件,但它们是安全交付的,不会动态加载任何进一步的内容。

这里有很多关于这个 IE 错误的信息,但到目前为止我发现的所有问题都指向我已经消除的上述问题之一。

IE6 和 7 中是否还有其他可能导致此错误的错误?

有什么方法可以识别 IE 认为哪个资源是不安全的?

【问题讨论】:

    标签: https internet-explorer-7 internet-explorer-6 fiddler


    【解决方案1】:

    我已经找到了问题的根源,但它需要一些挖掘。

    首先Eric Lawanother answer 中提出了一个prototype tool (exe) 来帮助识别问题。

    非安全资源是:

    data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=
    

    问题是 IE6 不支持数据 URI,所以我们不使用它们。那么这是从哪里来的呢?

    事实证明,jQuery UI 1.8 是问题所在,特别是对 CSS 中 another bug 的修复:

    .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=);
    }
    

    在最新的 jQuery UI CSS(1.9 或更高版本)中看起来像 others have also spotted this issueit's been fixed

    我的解决方法是将其替换为空白 gif 的常规 URL,问题解决了。

    【讨论】:

    • 除了你提到的罪魁祸首之外,使用 javascript: 作为协议会在过时的 IE 版本中导致此问题。更多详情:blogs.msdn.com/b/ieinternals/archive/2009/06/22/…
    • @EricLaw 干杯!我没听说过那个,问题更新了。
    • 花了几个小时修复它,是同样的问题,但 base64 是由 SASS 生成的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多