2018.03.26
コーディング
HTTPレスポンスヘッダで行えるセキュリティ対策
悪意のあるサイトはあの手この手でユーザーの個人情報や意図しない操作を引き出そうとしてきます。他サイトのセキュリティ情報を改変してしまうクリックジャッキングという手法や、フォームへscriptを埋め込み情報を不正入手するクロスサイトスクリプティングなんてものもあります。
今回はこれらの悪意ある技術への対策として、レスポンスヘッダによるセキュリティ対策を紹介します。
レスポンスヘッダとは?
Webサーバーがブラウザからのリクエストに対してレスポンスを発行する際に、含まれている情報です。サーバー側で設定するほか、.htaccessで設定できるサーバーもあります。サイトに埋め込まれた不正な技術に対して、あらかじめ動作させないフィルターを走らせるようなイメージです。
X-Frame-Options
クリックジャッキングへの対策になります。ブラウザがiframe
で指定したフレーム内にページを表示することを制御します。.htaccessでの対策例は以下です。
Header always append X-Frame-Options SAMEORIGIN
以下の3つのパラメーターがあります。
- DENY
- 全てのフレームでページの表示を禁止
- SAMEORIGIN
- 親ページと同一サイトを表示する場合は許可
- ALLOW-FROM
example.jp
example.jp
箇所で指定した特定のページは表示を許可
X-XSS-Protection
クロスサイトスクリプティングへの対策になります。ブラウザの XSSフィルターの機能を強制的に有効にし、XSS攻撃を防ぐために用いられます。.htaccessでの対策例は以下です。
Header always set X-XSS-Protection "1; mode=block"
パラメーターは1
が有効、0
が無効です。
Content-Security-Policy
Content Typeを無視したり偽装して動作するファイルに対して、その動作を防ぐ効果があります。非HTMLをHTMLと誤認させるなど、コンテンツ内容の誤判定を利用した攻撃を防ぎます。.htaccessでの対策例は以下です。
Header always set X-Content-Type-Options "nosniff"
まとめ
レスポンスヘッダによるセキュリティ対策の一部を紹介しました。攻撃に用いられる技術によって対策には他にもいろいろな方法があります。可能なセキュリティ対策は取り入れて、常々サイトのセキュリティレベルの向上をはかる意識が必要でしょう。新しい知識や技術の調査に時間を使い、サイトのセキュリティレベルを高く保ちたいですね。