2010年12月23日

SSL のページに非 SSL の iframe が挿入された時の動き

SSL で保護されたページにブックマークレットで iframe を挿入して、ブラウザがどれだけアクションを起こしてくれるのか調べてみました。

テスト対象
  • IE8
  • Firefox 3.6.13
  • Google Chrome 10.0.612.3 dev
  • Opera 11.00
  • Safari 5.0.3
テスト内容
  1. https://encrypted.google.com/webhp?hl=ja を開き、SSLの状態がどう表示されるか確認
  2. アドレスバーにブックマークレットを貼りつけて実行して、SSLの状態がどう変わるか確認
テスト結果

-------- IE8 --------


  1. URL を開くとロケーションバーの右側に鍵アイコンが現れる。
    アイコンをクリックすると、このようなダイアログが現れた。


  2. ブックマークレットを実行した瞬間にこのダイアログが出てきた。デフォルトのフォーカスは「はい」になっている。
    「詳細情報」ボタンを押すと読む気をなくさせる勢いのヘルプが開く。
    「はい」を選んだ場合はiframeは読み込みが中断され、読み込み失敗状態の iframe が現れる。
    「いいえ」を選んだ場合は鍵アイコンが消えて通常のロケーションバーに戻り、iframe が読み込まれる。
-------- Firefox 3.6.13 --------


  1. URLを開くとロケーションバーの左側が青くなり、クリックするとこのようなポップアップが表示される。

    ステータスバーにも小さい鍵アイコンが表示される。


  2. ブックマークレットを実行した瞬間にこのダイアログが出てきた。
    デフォルトでチェックボックスにはチェックが入っている。
    ただしこのダイアログは中断できるものではなく、保護されていない通信が行われたことを通知しているだけ。
    ダイアログが表示されている裏では iframe の読み込みは終わっていた。

    この画像は戻してから撮影したものだが、Firefox はロケーションバーにブックマークレットを貼りつけて Enter を押した場合 URL の表示が元に戻らずブックマークレットのコードが表示されたままになっていた。これはフォーカスを外しても戻らず、ロケーションバーで ESC キーを押すと元に戻った。Firebug から実行した場合はすぐに画像のような http と同じような表示に戻った。
    Favicon の部分をクリックすると保護されてないことがわかるウィンドウがポップアップする。

    ステータスバーのアイコンも見るからにダメそうなアイコンに変化する。
-------- Google Chrome 10.0.612.3 dev --------


  1. URL を開くとオムニバーの https の部分が緑色になり、合わせて鍵アイコンが表示される。
    アイコンをクリックすると詳細がポップアップする。


  2. ブックマークレットを実行すると、アイコンが鍵に三角マークが付いたものに変わった。
    ただし特に注意を促すようなダイアログは出ずに iframe が読み込まれた。
    鍵アイコンをクリックすると、この通信が保護されてないことを知ることができる。
-------- Opera 11 --------


  1. URL を開くとロケーションバーの左側に保護された通信を表す黄色い背景に鍵アイコンが現れる。
    「安全」のテキストがあるため他のブラウザより若干親切に思える。
    この領域をクリックするとより詳しい情報がポップアップされる。
    URL に本来付与されているパラメータが省略されて表示されていることに注意。


  2. ブックマークレットを実行すると特にダイアログなどが出ることはなく iframe が追加される。
    ロケーションバーにブックマークレットを貼りつけて Enter を押した場合にテキストが戻らないのは Firefox と同じような挙動。Dragonfly のコンソールから実行した場合の反応も Firefox と同様。
    アイコンをクリックすると保護されてないことがわかる表示がポップアップする。
-------- Safari 5.0.3 --------


  1. URLを開くとロケーションバーの右端に小さい鍵アイコンが現れる。
    鍵アイコンをクリックするとIE8の「証明書を表示」と同じような動作。


  2. ブックマークレットを実行すると特にダイアログなどが出ることはなく iframe が追加される。
    鍵アイコンが消える以外の変化は起こらず、保護されていないという情報が見れる画面は特にない。
    ロケーションバーにブックマークレットを貼りつけて実行した場合の挙動は Firefox と同じで、コンソールから実行した場合の挙動も同じ。
まとめ
どうせこんなの誰も見てないという視点で見るとまあ Safari の対応でもいいとは思うが、安全性の面から考えると唯一リクエスト自体を中断させることができた IE8 は優秀だと思う。
全ブラウザに共通しているのは鍵アイコンの存在だけで、出る位置、色、詳細情報の内容などはあまり一貫性がないことがわかった。
Clip to Evernote