クラス ContentSecurityPolicyHeaderWriter

java.lang.ObjectSE
org.springframework.security.web.header.writers.ContentSecurityPolicyHeaderWriter
実装されたすべてのインターフェース:
HeaderWriter

public final class ContentSecurityPolicyHeaderWriter extends ObjectSE 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
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    新しいインスタンスを作成します。
    新しいインスタンスを作成します
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    setPolicyDirectives(StringSE policyDirectives)
    レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。
    void
    setReportOnly(boolean reportOnly)
    true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。
    void
    writeHeaders(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
    Header インスタンスを作成します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
  • コンストラクターの詳細

    • ContentSecurityPolicyHeaderWriter

      public ContentSecurityPolicyHeaderWriter()
      新しいインスタンスを作成します。デフォルト値: default-src'self '
    • ContentSecurityPolicyHeaderWriter

      public ContentSecurityPolicyHeaderWriter(StringSE policyDirectives)
      新しいインスタンスを作成します
      パラメーター:
      policyDirectives - setPolicyDirectives(String) にマップ
      例外:
      IllegalArgumentExceptionSE - policyDirectives が null または空の場合
  • メソッドの詳細

    • writeHeaders

      public void writeHeaders(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      インターフェースからコピーされた説明: HeaderWriter
      Header インスタンスを作成します。
      次で指定:
      インターフェース HeaderWriterwriteHeaders 
      パラメーター:
      request - リクエスト
      response - レスポンス
      関連事項:
    • setPolicyDirectives

      public void setPolicyDirectives(StringSE policyDirectives)
      レスポンスヘッダーで使用されるセキュリティポリシーディレクティブを設定します。
      パラメーター:
      policyDirectives - セキュリティポリシーディレクティブ
      例外:
      IllegalArgumentExceptionSE - policyDirectives が null または空の場合
    • setReportOnly

      public void setReportOnly(boolean reportOnly)
      true の場合、レスポンスに Content-Security-Policy-Report-Only ヘッダーを含めます。それ以外の場合、デフォルトで Content-Security-Policy ヘッダーになります。
      パラメーター:
      reportOnly - ポリシー違反を報告する場合にのみ true に設定
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString