クラス ContentSecurityPolicyHeaderWriter
- java.lang.Object
-
- org.springframework.security.web.header.writers.ContentSecurityPolicyHeaderWriter
- 実装されたすべてのインターフェース:
HeaderWriter
public final class ContentSecurityPolicyHeaderWriter extends java.lang.Object implements 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()
新しいインスタンスを作成します。ContentSecurityPolicyHeaderWriter(java.lang.String policyDirectives)
新しいインスタンスを作成します
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
setPolicyDirectives(java.lang.String policyDirectives)
レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。void
setReportOnly(boolean reportOnly)
true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。java.lang.String
toString()
void
writeHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
Header
インスタンスを作成します。
コンストラクターの詳細
ContentSecurityPolicyHeaderWriter
public ContentSecurityPolicyHeaderWriter()
新しいインスタンスを作成します。デフォルト値: default-src'self '
ContentSecurityPolicyHeaderWriter
public ContentSecurityPolicyHeaderWriter(java.lang.String policyDirectives)
新しいインスタンスを作成します- パラメーター:
policyDirectives
-setPolicyDirectives(String)
にマップ- 例外:
java.lang.IllegalArgumentException
- policyDirectives が null または空の場合
メソッドの詳細
writeHeaders
public void writeHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
インターフェースからコピーされた説明:HeaderWriter
Header
インスタンスを作成します。- 次で指定:
- インターフェース
HeaderWriter
のwriteHeaders
- パラメーター:
request
- リクエストresponse
- レスポンス- 関連事項:
HeaderWriter.writeHeaders(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
setPolicyDirectives
public void setPolicyDirectives(java.lang.String policyDirectives)
レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。- パラメーター:
policyDirectives
- セキュリティポリシーディレクティブ- 例外:
java.lang.IllegalArgumentException
- policyDirectives が null または空の場合
setReportOnly
public void setReportOnly(boolean reportOnly)
true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。- パラメーター:
reportOnly
- ポリシー違反を報告する場合にのみ true に設定
toString
public java.lang.String toString()
- オーバーライド:
- クラス
java.lang.Object
のtoString