クラス DefaultHttpFirewall

  • 実装されたすべてのインターフェース:
    HttpFirewall

    public class DefaultHttpFirewall
    extends java.lang.Object
    implements HttpFirewall

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

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

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

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

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

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      FirewalledRequestgetFirewalledRequest​(javax.servlet.http.HttpServletRequest request)
      フィルターチェーンを通過するリクエストオブジェクトを提供します。
      javax.servlet.http.HttpServletResponsegetFirewalledResponse​(javax.servlet.http.HttpServletResponse response)
      フィルターチェーンを通過するレスポンスを提供します。
      voidsetAllowUrlEncodedSlash​(boolean allowUrlEncodedSlash)
      アプリケーションが URL エンコードされたスラッシュ文字を許可するかどうかを設定します。
      • クラス java.lang.Object から継承されたメソッド

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

      • DefaultHttpFirewall

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

      • getFirewalledResponse

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

        public void setAllowUrlEncodedSlash​(boolean allowUrlEncodedSlash)

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

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

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