Authentication




Cancel OK
B!コメントする  2011-11-08 23:18:00 by old

ヘッダーによるセキュリティ

最近WEB上で動作するものを作っているのでセキュリティに関して調査していますが、その中で「X-FRAME-OPTION」というのを見つけたので紹介します。

この「X-FRAME-OPTION」というヘッダですが、元々はマイクロソフトが呼びかけて採用されたものだそうで、クリックジャック対策として用いられるようです。
IEでは8から、他のブラウザでもだいたい実装されているようです。

クリックジャックというのはiframeやCSSやJavaScriptなんかを組み合わせて行う攻撃の一種ですが、これは有害サイトを正常に見せたり色々な偽装や情報の露呈などを行ってしまう攻撃です。(http://ja.wikipedia.org/wiki/クリックジャッキング

簡単な例を紹介すると、iframeの中に正規のサイトを表示して、CSSやJavaScriptなんかで透過やボタンなどを駆使してクリックを横取りしたり、情報を頂戴したりするような動作があげられます。

これらを防ぐには該当するドメインのみで操作が有効であることにしないといけないわけですが、それを手助けしてくれるのがX-FRAME-OPTIONヘッダです。
使用方法はMETAタグとヘッダーで埋め込む方法の2種類があります。

METAタグの場合

meta http-equiv="X-FRAME-OPTIONS" content="SAMEORIGIN"


ヘッダーの場合(PHP)
header('X-FRAME-OPTIONS', 'SAMEORIGIN');


となります。
値としては以下の2つが選択可能です。
SAMEORIGIN = 同一生成元に限り許可
DENY = 拒否

となります。

DENYを指定した場合、レスポンスはframe等の内側では表示されなくなり、SAMEORIGINの場合は、ブラウザーのアドレスに表示されたドメインと同一生成元の時のみ表示されるようになります。そのため、別サイトからiframeを使って参照攻撃した場合は見れなくなります。

使い分けとしてはframeを使っているところはSAMEORIGIN、使っていないところはDENYとするとセキュリティを向上させることが出来ます。
ですが大抵のサイトが外部から参照するようにはなってないと思いますのでDENYでも大丈夫だとは思います。

たった一行でセキュリティが向上できるので機会があればとりあえず書いておくというのもアリだと思います。


セキュリティー  

  • コメント
  • コメントはまだありません