フルスタックエンジニアになるためのブログ

エンジニアとしてのアウトプットをするためのブログ

NGINXにおけるセキュリティ項目

はじめに

社内でNGINXの設定をいじることがあったので、簡単にまとめておこうと思います。パフォーマンスに関する部分は別で書こうと思います。 設定できる項目としてざっくりとですが

  1. HTTPヘッダー付与によるブラウザ側のセキュリティ対策
  2. サーバー側のセキュリティ対策  と分けて書きます。

ブラウザ側のセキュリティ対策

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