「secureheaders」はRuby on Railsのレスポンスにセキュリティに関する次のヘッダをまとめて設定してくれる便利なgemです。特にCSPなどを導入すると予期せぬスクリプトの混入を防いだり、mixed-contentを防止するのに役立ちます!
| ヘッダ | 説明 |
|---|---|
| Content Security Policy | XSS、mixed-content等の攻撃を検知・防止 |
| HTTP Strict Transport Security | HTTPSへのアクセスをブラウザに依頼 |
| X-Frame-Option(XFO) | 、タグでコンテンツを表示を制御 |
| X-XSS-Protection | クロスサイト・スクリプティングを緩和するためのフィルタ |
| X-Content-Type-Options | nosniffでContent-Typeの意図しない改変を防ぎます |
| X-Download-Options | noopenでDLしたファイルを直接開くことを防止します |
| X-Permitted-Cross-Domain-Policie | Flashからのアクセスを制限します |
| Referrer-Policy | リファラの送信の制御。no-referrerでreferrerを送信しない等 |
| Public Key Pinning | 偽造された証明書による中間攻撃を防ぐための設定 |
| Clear-Site-Data | ブラウザキャッシュの削除を依頼します |
🐹 インストール手順
次のコードをGemfileに追加して、bundle installを実行してください。
# Security related headers |
🎳 設定
config/initializers/secure_headers.rbを作成して、サイトごとに必要な設定を追加してください。
SecureHeaders::Configuration.default do |config| |
😀 デフォルトのヘッダ
デフォルトで設定されるヘッダは次のようになります。
Content-Security-Policy: default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src https:; style-src 'self' https: 'unsafe-inline' |
