脆弱性対策には多くの対応が必要ですが、
その対策の一つにクリックジャッキング攻撃への対応があります。
実は、
以前組んだサイトでクリックジャッキング攻撃への不備が見つかったので、
今回はその不備に対する対応方法についての紹介です。
まず、
「クリックジャッキング攻撃」とは何か?
についてですが、
仕組み自体は難しくないのでどなたでも直ぐに理解できる内容だと思います。
が、
説明するとなるとデモ用のHTMLを用意したりと結構面倒なので、
今回は止めておきます。
以下のサイトで説明されているので、
そちらを確認してみて下さい。
https://noumenon-th.net/programming/2016/02/20/clickjacking/
こちらのブログでは、
対応方法についてのみ説明してみます。
と言っても、
HTTPレスポンスヘッダに「X-FRAME-OPTIONS」を追加して、
外部サイトからフレームでのページの読み込みを制限してやれば対応はOKです。
今回不備が見つかったサイトはPHPで組んでいるので、
header()関数を使って設定します。
該当のスクリプトりに以下のようなコードを1行追加するだけです。
<?php header("X-FRAME-OPTIONS: DENY"); ?>
スクリプト毎に設定するのが面倒という場合には、
.htaccessに以下のような記述を追加する方法もあります。
Header set X-FRAME-OPTIONS "DENY"
または、httpd.confで設定してもOKです。
因みに、
以下のようなmetaタグを追加する方法もあるみたいです。
<meta http-equiv="X-FRAME-OPTIONS" content="DENY">
それと、
指定できるのは「DENY」だけではなく、
「SAMEORIGIN」「ALLOW-FROM」も用意されています。
■DENY => フレームでのページの読み込みの一切を禁止
■SAMEORIGIN => フレーム内のページと同一サイトであれば、ページの読み込みが可
■ALLOW-FROM [URLを指定] => 指定したURL内でのみページの読み込みが可
という違いがあるようです。
原則「DENY」を指定
↓
どうしてもフレームで読み込む必要があるページのみ、
「SAMEORIGIN」や「ALLOW-FROM」を設定する!
といった仕様にしておいた方が、
個人的には無難な対応になると思います。
設定が完了したら、
一応HTTPのレスポンスヘッダを確認しておきましょう。
X-FRAME-OPTIONSが出力されていればOKです!!
PHP脆弱性対応PHP脆弱性対応:XSS(クロスサイトスクリプティング)
PHP脆弱性対応PHP脆弱性対応:フォームのセキュリティー対策 入力値の妥当性チェック
PHP脆弱性対応PHP クッキー(Cookie)にセキュア属性(secure属性)を付与
この記事へのコメントはありません。