技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Webアプリで役立つセキュリティヘッダ

ということで片っ端から列挙

  • Cache-Control:no-cache を指定する。中途半端にキャッシュサーバにキャッシュされた挙句、関係ない人に漏洩する可能性があるので、キャッシュは禁止しておく。
  • X-Frame-Options HTML の frame を禁止する。デザイン上禁止すると嫌って場合はあるが、ClickJacking 対策に有効。
  • X-XSS-Protection:1; mode=block ブラウザにXSS対策を要求する。当たり前だけど、完全に防げるとは思わないこと。保険として入れておく位に。
  • X-Content-Type-Options:nosniff ブラウザで独自にデータを認識する処理を無効にする。 スクリプトアップロード攻撃対策(?)で利用。 例:JavaScript拡張子 jpg にしてアップローダに入れておき、そのまま拡張子を見てサーバが image/jpeg 返した際に、何も言わないとブラウザが JavaScript として認識し、最悪の場合実行されてしまう。このヘッダを入れておくと、あくまで jpeg 画像として処理しようとするので、エラーが起きるだけになる。
  • X-Content-Security-Policy:default-src 'self'; allow 'self' FireFox 系ブラウザに、JavaScript は js ファイルでしか実行しない + JavaScript/画像/CSS/frame表示コンテンツ は同一ドメインからDLしたものしか認めないよう指定する。
  • X-WebKit-CSP:default-src 'self'; allow 'self' Webkit 系ブラウザ(OldChrome/Safari)に、JavaScript は js ファイルでしか実行しない + JavaScript/画像/CSS/frame表示コンテンツ は同一ドメインからDLしたものしか認めないよう指定する。
  • Content-Security-Policy:default-src 'self' 最新 Chrome, IE11 とかに対応した「X-Content-Security-Policy/X-WebKit-CSP」の標準仕様。
  • Strict-Transport-Security:max-age=31536000; includeSubDomains 次以降のアクセスは HTTPS でアクセスするようブラウザに要求する。

これでかなりガチガチに。