IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第8章 マッシュアップ:クライアントサイドマッシュアップ: #4 対策に利用できる技術
→ https://securityheaders.com/
CSP → https://kurita1.hatenadiary.com/entry/2022/05/26/120115
nginx security headers
Nginxセキュリティ設定 - Qiita 2016
Mac上でnginxのセキュリティ最低限を確認する - もちゅろぐ 2020
「server」節と「location」節にadd_headerを付与した場合、「location」に記載した値のみ有効になります。
【Nginx】add_headerが効かない場合 - かえでBlog 2020
REST APIなどHTTPステータスコードを上記以外で使用している場合や4xx系・5xx系で返却された場合はadd_headerが付与されなくなります。
そのため、全てのステータスコードに付与したい場合は「always」を追加します。
【Nginx】add_headerが効かない場合 - かえでBlog 2020
X-Frame-Options
add_header X-Frame-Options SAMEORIGIN;
外部から<iframe>で埋め込まれることを想定していないページに関してはX-Frame-Optionsレスポンスヘッダーを適切に設定しましょう。
Webエンジニアだったら当然知っておきたい「 クリックジャッキング対策 」とは? | 株式会社ヌーラボ(Nulab inc.)
X-Content-Type-Options
add_header X-Content-Type-Options nosniff;
Strict-Transport-Security HTST
nginx
add_header Strict-Transport-Security max-age=31536000;
Header always set Strict-Transport-Security "max-age=63072000"
すべてのコンテンツがHTTPS接続で表示されるように設定され、HTTPアクセスがHTTPSにリダイレクトするよう設定されていても、最初にHTTPでアクセスした時点で攻撃者がユーザーのCookieを傍受し個人情情報を収集したり、フィッシングサイトへリダイレクトしたりする可能性があり、セキュリティ上の問題が残ります。
こうした危険を減らすことができるのがHSTSです。HTTP Strict Transport Security(HSTS)は、ブラウザに対して常にHTTPS経由でWebサイトに接続するよう指示します。
HSTSを設定すると、URL入力時に意図的に http:// を指示しても、ブラウザはHTTPS接続を行います。
HTTPS入門 リダイレクトとHSTS:SSL/TLS サーバ証明書 |DigiCert(デジサート)正規代理店
WebサーバーでHSTSを有効にしておくと、ブラウザからの初回アクセス時にHSTSを保持していない時、サーバーはブラウザに「次からこのドメインにアクセスする時は◯◯秒間HTTPSでアクセスしてね」というレスポンスを返します。(一般的には31536000秒=1年の設定が多いです)
HSTS(HTTP Strict Transport Security)について詳細、設定方法を解説します | 株式会社レオンテクノロジー 2019
https://ssl-config.mozilla.org/ だと63072000秒=2年の設定