記憶永続化用のメモブログ

脳内に揮発性記憶領域しかないことに気づいたので作成

クリックジャッキングの対応メモ

クリックジャッキングの対応についての自分用のメモ書き。

クリックジャッキングってなんぞ?

クリックジャッキング 「クリックジャッキング」とは、ユーザーを視覚的にだまして、正常に見えるページとは別のページをクリックさせる攻撃のこと。

知らぬ間に自ら「設定変更」〜クリックジャッキング攻撃を防ぐ - 第1回 SNSの個人情報がさらされる、昔な...:ITpro

とあるサイトをiframeで表示させて、その上に透明なページを被せてユーザにクリックさせて悪意あるサイトとかに誘導したりするのが流行らしい。
おそらくIDやパスワードも入力させてしまえば抜ける。

とりあえず上記のリンクのサイトを見るのが一番分かりやすかった。

自分のサイトが他のドメインからiframeで表示出来るか検証

適当にhtmlファイルを作ってみる。

<html lang="ja">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

<meta http-equiv="Content-Style-Type" content="text/css">

<meta http-equiv="Content-Script-Type" content="text/javascript">

<title>テスト</title>

</head>

<body>

<iframe style="width:100%;height:100%;" sandbox="allow-forms" src="自分のサイトのURL"></iframe>

</body>

</html>

Oh....
みごとに表示出来ている。。。

他のサイトから表示出来ないように対応する

IPAのサイトに対応について纏められていたpdfがあった

X-FRAME-OPTIONSでiframeで表示させないように制御するのがよろしいらしい。
ただ、自分のサイトでiframeを使って自分のサイトを表示とかしてたら、
他に対応を考えるかiframeを除去していかなきゃいけない。

今回はユーザ更新の
とりあえずapachehttpd.confのvirtualhost内に以下の設定を追加。

Header always append X-FRAME-OPTIONS "SAMEORIGIN"

※ mod_headersモジュールが有効になっている必要あり
※ "SAMEORIGIN"は同一ドメイン内ならiframeの表示を許可するという設定。ドメインに限らず全て拒否する場合は"DENY"を設定する。

で再度、iframeを書いたテスト用のhtmlを開いて確認したところ、無事にiframeが表示されなくなっていることを確認できた。