CSP の仕組み: コンテンツ セキュリティ ポリシーの包括的なガイド
概要:
コンテンツセキュリティ ポリシー (CSP) は、悪意のあるコンテンツやクロスサイト スクリプティングから Web サイトを保護する強力なセキュリティ メカニズムです。 (XSS) 攻撃。 CSP は、ブラウザがリソースを読み込めるソースを定義することで、信頼できないコンテンツが Web サイトに侵入するリスクを効果的に軽減します。
Content-Security-Policy HTTP ヘッダーについて:
Content-Security-Policy タグは、さまざまなタイプのコンテンツをロードするための有効なソースを指定するディレクティブで構成されます。各ディレクティブの後には、許可されるソースを定義するパラメータのスペース区切りのリストが続きます。
1.複数のソースの許可:
複数のソースを許可するには、ディレクティブの後にそれらをリストするだけです:
content="default-src https://example1.com/js/ https://example2.com/js/"
2.さまざまなディレクティブの使用:
一般的なディレクティブには次のものがあります:
3.ディレクティブの結合:
セミコロンを使用して複数のディレクティブを単一のメタタグに結合できます:
content="default-src 'self' https://example.com/js/; style-src 'self'"
4.ポートの処理:
非標準ポートは明示的に指定する必要があります:
content="default-src https://ajax.googleapis.com:443 https://example.com:123/free/stuff/"
5.異なるプロトコルの許可:
標準プロトコルはデフォルトで許可されます。非標準プロトコル (WebSocket など) を許可するには、connect-src:
content="default-src 'self'; connect-src ws://"
6 を使用します。許可ファイル プロトコル (file://):
ファイル システム パラメーターを使用します:
content="default-src filesystem"
7.インライン スタイルとスクリプトの許可:
unsafe-inline を使用したインライン コンテンツの許可:
content="script-src 'unsafe-inline'; style-src 'unsafe-inline'"
8. Eval の許可:
eval() の許可には unsafe-eval パラメータが必要です:
content="script-src 'unsafe-eval'"
9。 「self」の意味:
「self」は、コンテンツ ポリシーを含むファイルと同じスキーム、ホスト、ポートを指します。これには、localhost またはローカル ファイルシステムのリソースは含まれません。
ワイルドカード ディレクティブの危険性:
content="default-src *" は、許可する便利な方法のように思えるかもしれません。すべてのソースに対して、インライン化または評価のアクセス許可は暗黙的に付与されません。サイトをすべてのコンテンツに完全に公開するには、次を使用します:
content="default-src * 'unsafe-inline' 'unsafe-eval'"
結論:
CSP は、XSS 攻撃のリスクを大幅に軽減できる強力なセキュリティ ツールです。さまざまなディレクティブとパラメータを理解することで、Web サイトにカスタム セキュリティ ポリシーを効果的に適用できます。 CSP は安全なコーディングの代替としてではなく、潜在的な脅威に対する追加の保護層として使用されるべきであることを覚えておくことが重要です。
以上がコンテンツ セキュリティ ポリシー (CSP) はどのように機能するか: 包括的なガイド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。