Web APIのセキュリティヘッダー実装
Go
Gin
セキュリティ
Web APIサーバーにおいて、以下のHTTPセキュリティヘッダーを設定することで、様々な攻撃から防御できる。
必須のセキュリティヘッダー:
-
X-Content-Type-Options: nosniff
- MIMEタイプスニッフィングを防ぎ、宣言されたContent-Typeを厳格に適用
- スクリプトインジェクション攻撃を防ぐ
-
X-Frame-Options: DENY
- iframeへの埋め込みを拒否し、クリックジャッキング攻撃を防ぐ
- APIサーバーでは通常DENYが適切
-
Referrer-Policy: strict-origin-when-cross-origin
- リファラー情報の漏洩を制御
- クロスオリジンリクエストでは完全なURLを送信しない
-
Permissions-Policy
- ブラウザ機能の使用を制限
- 例:
geolocation=(), microphone=(), camera=()
-
Content-Security-Policy
- XSS攻撃の最も強力な防御策
- APIサーバーでは
default-src 'none'; frame-ancestors 'none';
が適切
-
Strict-Transport-Security (HTTPS環境のみ)
- HTTPSを強制し、ダウングレード攻撃を防ぐ
max-age=31536000; includeSubDomains
Ginフレームワークでの実装例:
これらのヘッダーを設定することで、OWASPトップ10の多くの脆弱性に対する防御層を追加できる。