iframe is still alive


3月更新しませんでした。すいませんでした。忙しい時期です。

今回はイベントの書き方によっては想定外のドメインからCookieの読み込みなどが出来てしまうことを確認出来たのでそのことについて書きたいと思います。

以下の様なページが存在するとします。
脆弱性のあるページ

この時攻撃者は以下の様なページを自分のサーバ等に設置してユーザにアクセスさせます。
攻撃者のページ

ユーザがボタンをクリックすると「vuln.moe」ドメインのCookieが表示されます。
スクリーンショット 2015-04-19 15.17.35

対策
送信者の識別情報を限定してやることで対策が可能です。
この対策は以下のページでも記述されています。
window.postMessage – Web API インターフェイス | MDN

また以下のように書き直すことでも対策を行うことが出来ます。

ただしinnerTextはFirefoxでは動作しないのでjQueryによる対策が好ましいかも知れませんね。

スクリーンショット 2015-04-19 15.26.53

ケース・バイ・ケースですがどちらか片方の対策だと気持ち悪いので、送信者の識別情報の判定と特殊文字の無害化の双方を行うといいかと思います。