8

IE6 & 7 で (エラーで) 次のようなダイアログが表示される HTTPS サイトがあります。

このページには、安全なアイテムと安全でないアイテムの両方が含まれています

非セキュア項目を表示しますか?

これは適切なブラウザーでは発生しませんが、このサイトは企業向けであり、多くの顧客がまだ Windows 2000 と IE6 を使用しています。

私は、このメッセージの次の考えられる原因をよく知っています (そして排除しました)。

  1. ページでロードされたリソースの 1 つまたは複数がhttp://代わりにhttps://- これがエラーを表示する唯一の正当な理由であり、動作中のブラウザーでも同じメッセージが表示される可能性があります。Fiddlerは非セキュアにロードされたリソースを識別できるため、これは簡単に修正できます。

  2. IE ビヘイビアー .htcファイルは、DHTML 機能を提供するために読み込まれます。これらは、URL から配信された場合でも暗号化されていないものとして扱われることが多くhttps://、IE6 が新しくなったときでさえ、まったく役に立ちませんでした。そもそもこれらを使うのは得策ではありません。

  3. IE は空のフレームを安全でないリソースとして扱うため、<iframe src=""または<iframe src="about:blank"その両方でこのエラーが発生します。これは、コード内で簡単に見つけて修正できます。

  4. ActiveX XMLHTTP コンポーネントを使用する場合、IE5 は AJAX リクエストを非セキュアとして送信していました。これは IE6 以降では問題ないと思います。

  5. Data-URI は IE 6 または 7 ではサポートされておらず、表示されませんが、CSS に含まれている場合は安全でない警告も発生します。それらを使用しない IE 用の別の CSS があります。

  6. スクリプト タグ レポートのソース内の Javascript プロトコル リンクが安全でないと報告されている:属性<script type="text/javascript" src="javascript:void(0)">をクリアすることで簡単に回避できsrcます (Eric に感謝します!)

  7. ページまたは動的に読み込まれる外部ライブラリはなく、CDN も使用されません。サードパーティのプラグインをいくつか使用していますが、それらは安全に配信され、それ以上のコンテンツを動的にロードすることはありません.

この IE のバグについてはここにたくさんありますが、これまでに見つけたのは、上記の問題のうちの 1 つを示しており、既に解決済みです。

このエラーの原因となる可能性のある IE6 & 7 の他のバグはありますか?

IE がどのリソースを安全でないリソースと見なすかを特定する方法はありますか?

4

1 に答える 1

6

問題の原因を見つけましたが、少し掘り下げる必要がありました。

最初に、 Eric Lawは、問題の特定に役立つ別の回答プロトタイプ ツール (exe)を考え出しました。

非セキュア リソースは次のとおりです。

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

問題は、IE6 がデータ URI をサポートしていないため、使用していないことです。それで、これはどこから来たのですか?

jQuery UI 1.8 が問題であることが判明しました。具体的には、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=);
}

他の人もこの問題を発見したようで、最新の jQuery UI CSS (1.9 以降) で修正されています。

私の修正は、それを空のgifの通常のURLに置き換えることでした。問題は解決しました。

于 2012-11-15T15:59:39.143 に答える