S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

httpsとIE6とIE7とiframeと

本番のhttpsの環境でアプリケーションを動作させて、事象が発覚した。
IE7ではセキュリティの警告が出ないが、IE6では警告が表示される。

このページにはセキュリティで保護されている項目と保護されていない項目が含まれています。
保護されていない項目を表示しますか?

アプリケーションではファイルダウンロードの実現として、隠したiframeタグからサーブレットへリクエストを送信することで実現している。
ファイルダウンロード機能がどのページで必要になってもよいように、includeするJSPに記述し、ダウンロード対象となるファイルが存在しない場合は、iframeタグの属性をsrc=""としていた。


調査中に下記ページの記述を確認し、iframeタグの属性にsrc="/id=dummy"のように記述を変更し対応を行った。
この対処では、httpsのリクエストでは警告が出ないが、httpのリクエストに対して警告が出てしまう。
そのため、テスト/デバッグ環境での動作を考慮し、ServletRequest#getSchemeメソッドの戻り値でリクエストを判定し、それぞれsrc属性を切り替えるようにした。
IFRAME では src 属性を必ず指定した方が良いわけ
FRAME/IFRAME を含むページを SSL により参照するとセキュリティ警告メッセージが発生する


本番がhttpsであれば、テスト時に自前の証明書でいいから、ちゃんと確認しとくべきですね(-_-)