影響
セキュリティ ヘッダーがないため、攻撃者はクリックジャッキングを実行したり、セッション Cookie を盗んだり、クロスサイト スクリプティング (XSS) [S1] を実行したりすることができます。これらの指示がないと、ブラウザーはセキュリティ境界を強制することができず、データの漏洩や不正なユーザー操作が発生する可能性があります。
根本原因
この問題は、Web サーバーまたはアプリケーション フレームワークが標準の HTTP セキュリティ ヘッダーを含むように構成されていないことが原因で発生します。開発では機能的な HTML と CSS [S1] が優先されることがよくありますが、セキュリティ構成は省略されることがよくあります。 MDN Observatory のような監査ツールは、これらの不足している防御層を検出し、ブラウザとサーバー間の対話が安全であることを保証するように設計されています。
技術的な詳細
セキュリティ ヘッダーは、一般的な脆弱性を軽減するための特定のセキュリティ ディレクティブをブラウザーに提供します。
- コンテンツ セキュリティ ポリシー (CSP): どのリソースをロードできるかを制御し、不正なスクリプトの実行とデータ インジェクションを防止します。
- Strict-Transport-Security (HSTS): ブラウザーが安全な HTTPS 接続 [S2] 経由でのみ通信するようにします。
- X-Frame-Options: アプリケーションが iframe でレンダリングされるのを防ぎます。これは、[S1] のクリックジャッキングに対する主な防御策です。
- X-Content-Type-Options: ブラウザーがファイルを指定されたものとは異なる MIME タイプとして解釈しないようにし、MIME スニッフィング攻撃を阻止します。
FixVibe がそれをテストする方法
FixVibe は、Web アプリケーションの HTTP 応答ヘッダーを分析することでこれを検出できます。 MDN Observatory 標準 [S2] に対して結果をベンチマークすることにより、FixVibe は、CSP、HSTS、X-Frame-Options などのヘッダーの欠落または構成ミスにフラグを立てることができます。
修正
Web サーバー (Nginx、Apache など) またはアプリケーション ミドルウェアを更新して、標準のセキュリティ体制 [S1] の一部としてすべての応答に次のヘッダーを含めます。
- コンテンツ セキュリティ ポリシー: リソース ソースを信頼できるドメインに制限します。
- 厳密なトランスポート セキュリティ: 長い
max-ageを使用して HTTPS を強制します。 - X-Content-Type-Options:
nosniff[S2] に設定します。 - X-Frame-Options: [S1] のクリックジャッキングを防ぐには、
DENYまたはSAMEORIGINに設定します。
