rey’s developer blog

ユーザ系SIerに勤めるSEがプログラミング、データベース、OS、SNS、ガジェットなどを中心に備忘録変わりに書いていきます。

【Windows/IE】KB3154070(MS16-051)を適用したInternet Explorerにて、iframeの挙動がおかしくなる。

2016年5月10日に出された「Windows 7Internet Explorer 11 の累積的なセキュリティ更新プログラム (KB3154070)」にて、iframeの挙動がおかしくなる事象があるので紹介します。

なお、Windows 10の「Windows 10 Version 1511 および Windows Server 2016 Technical Preview 4 用の累積的な更新プログラム (2016 年 5 月 10 日) (KB3156421)」でも同一事象が発生している模様です。

 

<パッチ>

Windows 7 用 Internet Explorer 11 の累積的なセキュリティ更新プログラム (KB3154070) from Official Microsoft Download Center

 

Windows 10 Version 1511 および Windows Server 2016 Technical Preview 4 用の累積的な更新プログラム (2016 年 5 月 10 日)

 

<セキュリティ情報>

マイクロソフト セキュリティ情報 MS16-051 - 緊急

Internet Explorer 用の累積的なセキュリティ更新プログラム (3155533)

 

[解決策]

 

<解決策に関してのコミュニティサイト(英語)>

stackoverflow.com


【Stack Overflow の翻訳】

 

<事象と原因>
KB3154070 がインストールされた状態でのIEでは、「ページのローディング完了まで(親ノードのDOMツリーの準備ができる前)に、iframeが任意のスクリプトの動作を開始する場合、コンテンツをブロックする」ようIEが動作する。

ただし、調査の中でiframeにリソースのないコンテンツがロードされた場合、ブロックがされないことわかりました。

 

<回避策>

回避策として「iframeにてsrc属性を宣言しない」手法が挙げれます。

今回のパッチではDOMツリー操作に関するブロックは行われていないので、onloadハンドラでsrc属性を宣言することで回避できます。

 

■回避方法サンプル
・iframeの定義

<iframe id="myIFrame"></iframe>

 

イベントハンドラの定義

 (bodyタグの末尾にonloadイベント宣言、もしくはondomreadyイベントにて)

document.getElementById('myIFrame').src = '/whatever/url/to/load';

 

<根本原因>

KB3154070に関する、この情報は、セキュリティ対策か、不具合かの報告は上がっておらず、判断ができない状況にある。

 

 

なお、ロゴスコンピュータ様のパッケージでも不具合があった模様です。

learning.logosware.com