クラス DefaultHttpFirewall

java.lang.ObjectSE
org.springframework.security.web.firewall.DefaultHttpFirewall
実装されたすべてのインターフェース:
HttpFirewall

public class DefaultHttpFirewall extends ObjectSE implements HttpFirewall

ユーザーは、StrictHttpFirewall を使用することを検討する必要があります。これは、悪意のある URL をサニタイズしようとするのではなく、悪意のある URL を拒否して、より優れたセキュリティ保証を提供するためです。

servletPath および pathInfo の一貫した値を提供するためにリクエストをラップするデフォルトの実装であり、パスパラメーター(RFC 2396 で定義されている)を含みません。サーブレットコンテナーが異なると、パスパラメーターの処理方法に関してサーブレットの仕様が異なって解釈され、特定のセキュリティ制約をバイパスするために追加される可能性があります。この実装を使用する場合、リクエストがセキュリティフィルターチェーンを通過するため、すべてのリクエストに対して削除されます。これは、デコードされたパス内のセミコロンを含むすべてのセグメントが、リクエストのマッチングのためにセミコロンに続く部分を削除することを意味することに注意してください。アプリケーションには、セミコロンを含む有効なパスを含めないでください。

正規化されていないパス(ディレクトリトラバーサル文字シーケンスを含む)が見つかった場合、リクエストはすぐに拒否されます。ほとんどのコンテナーは、サーブレットマッピングを実行する前にパスを正規化しますが、これもサーブレットの仕様では保証されていません。

関連事項:
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    getFirewalledRequest(jakarta.servlet.http.HttpServletRequest request)
    フィルターチェーンを通過するリクエストオブジェクトを提供します。
    jakarta.servlet.http.HttpServletResponse
    getFirewalledResponse(jakarta.servlet.http.HttpServletResponse response)
    フィルターチェーンを通過するレスポンスを提供します。
    void
    setAllowUrlEncodedSlash(boolean allowUrlEncodedSlash)
    アプリケーションが URL エンコードされたスラッシュ文字を許可するかどうかを設定します。

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

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

    • DefaultHttpFirewall

      public DefaultHttpFirewall()
  • メソッドの詳細

    • getFirewalledRequest

      public FirewalledRequest getFirewalledRequest(jakarta.servlet.http.HttpServletRequest request) throws RequestRejectedException
      インターフェースからコピーされた説明: HttpFirewall
      フィルターチェーンを通過するリクエストオブジェクトを提供します。
      次で指定:
      インターフェース HttpFirewallgetFirewalledRequest 
      例外:
      RequestRejectedException - リクエストをすぐに拒否する必要がある場合
    • getFirewalledResponse

      public jakarta.servlet.http.HttpServletResponse getFirewalledResponse(jakarta.servlet.http.HttpServletResponse response)
      インターフェースからコピーされた説明: HttpFirewall
      フィルターチェーンを通過するレスポンスを提供します。
      次で指定:
      インターフェース HttpFirewallgetFirewalledResponse 
      パラメーター:
      response - 元のレスポンス
      戻り値:
      元のレスポンスまたは置換 / ラッパーのいずれか。
    • setAllowUrlEncodedSlash

      public void setAllowUrlEncodedSlash(boolean allowUrlEncodedSlash)

      アプリケーションが URL エンコードされたスラッシュ文字を許可するかどうかを設定します。

      true(デフォルトは false)の場合、URL エンコードされたスラッシュは URL で許可されます。エンコードされたスラッシュを許可すると、コンテナーが HttpServletRequest を構築する方法に応じて、状況によってはセキュリティの脆弱性が発生する可能性があります。

      パラメーター:
      allowUrlEncodedSlash - 新しい価値 (デフォルトは false)