NGINXにおけるセキュリティ項目
はじめに
社内でNGINXの設定をいじることがあったので、簡単にまとめておこうと思います。パフォーマンスに関する部分は別で書こうと思います。 設定できる項目としてざっくりとですが
- HTTPヘッダー付与によるブラウザ側のセキュリティ対策
- サーバー側のセキュリティ対策 と分けて書きます。
ブラウザ側のセキュリティ対策
NGINXではレスポンスに対してHTTPヘッダーを付与することができます。ここでは一般的に付与されることの多いヘッダーとその簡単な説明を紹介します。攻撃の詳細などはここでは説明しません。
ヘッダー名 | サンプル | 説明 |
---|---|---|
X-Content-Type-Options | add_header X-Content-Type-Options "nosniff"; | ファイルのタイプをブラウザ側で推測させることを防ぎ、Content-Typeから判断させる。 |
X-XSS-Protection | add_header X-XSS-Protection "1; mode=block"; | XSS攻撃を防ぐ |
X-Frame-Options | add_header X-Frame-Options "SAMEORIGIN"; | クリックジャッキングを防ぐ |
Strict-Transport-Security | add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload'; | HTTPSの使用を強制する。最近のブラウザはHTTPSでないWebサイトには警告が出るようになっているのであまり意味はないか |
参考リンク X-Content-Type-Options X-XSS-Protection X-Frame-Options Strict-Transport-Security