クラス DefaultHttpFirewall
- java.lang.Object
-
- org.springframework.security.web.firewall.DefaultHttpFirewall
- 実装されたすべてのインターフェース:
HttpFirewall
public class DefaultHttpFirewall extends java.lang.Object implements HttpFirewall
ユーザーは、
StrictHttpFirewall
を使用することを検討する必要があります。これは、悪意のある URL をサニタイズしようとするのではなく、悪意のある URL を拒否して、より優れたセキュリティ保証を提供するためです。servletPath
およびpathInfo
の一貫した値を提供するためにリクエストをラップするデフォルトの実装であり、パスパラメーター(RFC 2396 で定義されている)を含みません。サーブレットコンテナーが異なると、パスパラメーターの処理方法に関してサーブレットの仕様が異なって解釈され、特定のセキュリティ制約をバイパスするために追加される可能性があります。この実装を使用する場合、リクエストがセキュリティフィルターチェーンを通過するため、すべてのリクエストに対して削除されます。これは、デコードされたパス内のセミコロンを含むすべてのセグメントが、リクエストのマッチングのためにセミコロンに続く部分を削除することを意味することに注意してください。アプリケーションには、セミコロンを含む有効なパスを含めないでください。正規化されていないパス(ディレクトリトラバーサル文字シーケンスを含む)が見つかった場合、リクエストはすぐに拒否されます。ほとんどのコンテナーは、サーブレットマッピングを実行する前にパスを正規化しますが、これもサーブレットの仕様では保証されていません。
- 関連事項:
StrictHttpFirewall
コンストラクターのサマリー
コンストラクター コンストラクター 説明 DefaultHttpFirewall()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 FirewalledRequest
getFirewalledRequest(javax.servlet.http.HttpServletRequest request)
フィルターチェーンを通過するリクエストオブジェクトを提供します。javax.servlet.http.HttpServletResponse
getFirewalledResponse(javax.servlet.http.HttpServletResponse response)
フィルターチェーンを通過するレスポンスを提供します。void
setAllowUrlEncodedSlash(boolean allowUrlEncodedSlash)
アプリケーションが URL エンコードされたスラッシュ文字を許可するかどうかを設定します。
メソッドの詳細
getFirewalledRequest
public FirewalledRequest getFirewalledRequest(javax.servlet.http.HttpServletRequest request) throws RequestRejectedException
インターフェースからコピーされた説明:HttpFirewall
フィルターチェーンを通過するリクエストオブジェクトを提供します。- 次で指定:
- インターフェース
HttpFirewall
のgetFirewalledRequest
- 例外:
RequestRejectedException
- リクエストをすぐに拒否する必要がある場合
getFirewalledResponse
public javax.servlet.http.HttpServletResponse getFirewalledResponse(javax.servlet.http.HttpServletResponse response)
インターフェースからコピーされた説明:HttpFirewall
フィルターチェーンを通過するレスポンスを提供します。- 次で指定:
- インターフェース
HttpFirewall
のgetFirewalledResponse
- パラメーター:
response
- 元のレスポンス- 戻り値:
- 元のレスポンスまたは置換 / ラッパーのいずれか。
setAllowUrlEncodedSlash
public void setAllowUrlEncodedSlash(boolean allowUrlEncodedSlash)
アプリケーションが URL エンコードされたスラッシュ文字を許可するかどうかを設定します。
true(デフォルトは false)の場合、URL エンコードされたスラッシュは URL で許可されます。エンコードされたスラッシュを許可すると、コンテナーが HttpServletRequest を構築する方法に応じて、状況によってはセキュリティの脆弱性が発生する可能性があります。
- パラメーター:
allowUrlEncodedSlash
- 新しい価値 (デフォルトは false)