クラス ContentSecurityPolicyHeaderWriter
- 実装されたすべてのインターフェース:
HeaderWriter
コンテンツセキュリティポリシー(CSP)レベル 2 をサポートします。
CSP は、クロスサイトスクリプティング(XSS)などのコンテンツインジェクションの脆弱性を軽減するための Web アプリケーションのメカニズムを提供します。CSP は、Web アプリケーションの作成者が、アプリケーションがリソースをロードすることを期待しているソースについてクライアント(ユーザーエージェント)に通知できるようにする宣言型ポリシーです。
例: Web アプリケーションは、特定の信頼できるソースからのスクリプトのロードのみを想定していることを宣言できます。この宣言により、クライアントは、攻撃者によってアプリケーションに挿入された悪意のあるスクリプトを検出してブロックできます。
セキュリティポリシーの宣言には、セキュリティポリシーディレクティブのセット(たとえば、script-src および object-src)が含まれ、それぞれが特定のリソース型の制限を宣言するロールを果たします。定義されているディレクティブのリストは、ディレクティブにあります。
各ディレクティブには名前と値があります。セキュリティポリシーの記述に関する詳細な構文については、構文とアルゴリズムを参照してください。
この HeaderWriter
の実装は、次のいずれかのヘッダーを書き込みます。
- コンテンツセキュリティポリシー
- コンテンツ - セキュリティ - ポリシー - レポートのみ
デフォルトでは、Content-Security-Policy ヘッダーがレスポンスに含まれています。ただし、true
を使用して setReportOnly(boolean)
を呼び出すと、レスポンスに Content-Security-Policy-Report-Only ヘッダーが含まれます。注 : 提供されたセキュリティポリシーディレクティブは、有効になっている(含まれている)ヘッダーに使用されます。
CSP は、コンテンツインジェクションの脆弱性に対する最初の防衛線として意図されたものではありません。代わりに、CSP を使用して、コンテンツインジェクション攻撃によって引き起こされる害を軽減します。コンテンツインジェクションに対する最初の防衛線として、Web アプリケーションの作成者は、入力を検証し、出力をエンコードする必要があります。
- 導入:
- 4.1
コンストラクターのサマリー
コンストラクターコンストラクター説明新しいインスタンスを作成します。ContentSecurityPolicyHeaderWriter
(StringSE policyDirectives) 新しいインスタンスを作成しますメソッドのサマリー
修飾子と型メソッド説明void
setPolicyDirectives
(StringSE policyDirectives) レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。void
setReportOnly
(boolean reportOnly) true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。toString()
void
writeHeaders
(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Header
インスタンスを作成します。
コンストラクターの詳細
ContentSecurityPolicyHeaderWriter
public ContentSecurityPolicyHeaderWriter()新しいインスタンスを作成します。デフォルト値: default-src'self 'ContentSecurityPolicyHeaderWriter
新しいインスタンスを作成します- パラメーター:
policyDirectives
-setPolicyDirectives(String)
にマップ- 例外:
IllegalArgumentExceptionSE
- policyDirectives が null または空の場合
メソッドの詳細
writeHeaders
public void writeHeaders(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) インターフェースからコピーされた説明:HeaderWriter
Header
インスタンスを作成します。- 次で指定:
- インターフェース
HeaderWriter
のwriteHeaders
- パラメーター:
request
- リクエストresponse
- レスポンス- 関連事項:
setPolicyDirectives
レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。- パラメーター:
policyDirectives
- セキュリティポリシーディレクティブ- 例外:
IllegalArgumentExceptionSE
- policyDirectives が null または空の場合
setReportOnly
public void setReportOnly(boolean reportOnly) true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。- パラメーター:
reportOnly
- ポリシー違反を報告する場合にのみ true に設定
toString