Skip to main content

入力の例外

アプリケーションの例外には、入力の例外という種類があります。この例外を使用すると、特定の入力をContrastエージェントの検査から除外することができます。この例外は、特定の入力が安全であり、監視する必要がないことがわかっている場合に役立ち、セキュリティレポートのノイズを減らすことができます。

例外の入力タイプ

Contrastでは、次の入力タイプを使用する例外をサポートします。

  • Parameter:POSTボディやクエリ文字列自体のパラメータを含む、リクエストメソッドを介してアクセスされる特定のパラメータを対象外にします。

  • Header:特定のHTTPヘッダを対象外にします。

  • Query String:クエリ文字列全体を対象外にします。

  • Body:リクエストボディ全体を対象外にします。

  • Cookie:特定のCookieを対象外にします。

パラメータによる入力の例外

入力タイプがパラメータ(Parameter)である入力の例外では、クエリ文字列やフォームボディなど、リクエスト内のパラメータのうち、アプリケーションがそのパラメータ名を使用したメソッド(例:request.getParameter("foo"))でパラメータを取得する限り、指定されたパラメータに一致する全てのパラメータがチェックされます。

例:

Image shows basic settings for a parameter input exclusions with foo being the excluded parameter

例外にするパラメータとして foo を指定した場合、ContrastでHTTPリクエストがどのように処理されるかの例を次に示します。

HTTPリクエスト

例外(対象外)にする場合...

対象に含める場合...

GET /someRequest?

foo=excludedValue&bar=includedValue

Contrastは、次のパラメータを監視対象から外します:

foo=excludedValue

Contrastは、次のパラメータを引き続き監視します:

bar=includedValue

POST /someRequest

Content-Type: application/x-www-form-urlencoded

foo=excludedValue&bar=includedValue

注記

POSTリクエストの場合、この例外はapplication/x-www-form-urlencoded body形式のボディに対してのみ有効です。

Contrastは、次のパラメータを監視対象から外します:

foo=excludedValue

Contrastは、次のパラメータを引き続き監視します:

bar=includedValue

ヘッダによる入力の例外

ヘッダ(Header)は、アプリケーションがリクエストから取得する特定のHTTPヘッダです(例:request.getHeader("User-Agent"))。

例:

Image shows settings for a basic Header input exclusion for a the User Agent header.

例外にするヘッダとして User-Agentを指定した場合、ContrastでHTTPリクエストがどのように処理されるかの例を次に示します。

HTTPリクエスト

例外(対象外)にする場合...

対象に含める場合...

GET /someRequest

User-Agent: excludedUser

AgentAccept: application/json

Contrastは、次のヘッダを監視対象から外します:

User-Agent: excludedUserAgent

Contrastは、次のヘッダを引き続き監視します:

Accept: application/json

クエリ文字列による入力の例外

クエリ文字列(Query String)の例外は、個々のパラメータではなく、クエリ文字列全体に適用されます。この例外は、アプリケーションがクエリ文字列全体を取得して解析する場合(例:request.getQueryString()の結果に基づいて処理する場合)に役立ちます。

例:

Image shows basic settings for a Query input exclusion.

指定されたURLに基づいて、ContrastでHTTPリクエストがどのように処理されるかの例を次に示します。

HTTPリクエスト

例外(対象外)にする場合...

対象に含める場合...

GET /someRequest?foo=excludedValue&bar=excludedValue

Contrastは、クエリ文字列全体を監視対象から外します

Contrastは、クエリ文字列全体を引き続き監視します

ボディによる入力の例外

ボディ(Body)による入力の例外は、リクエストのボディ全体に適用されます。このタイプの例外は、ボディにアプリケーションが解析するデータが含まれている場合(例:request.getBody()の結果に基づいて処理する場合)に役立ちます。

例:

Image shows selections for a typical Body input exclusion

指定されたURLに基づいて、ContrastでHTTPリクエストがどのように処理されるかの例を次に示します。

HTTPリクエスト

例外(対象外)にする場合...

対象に含める場合...

POST /someRequest

Content-Type: application/json

{ "foo": "excludedValue", "bar": "excludedValue" }

Contrastは、リクエストボデイ全体を監視対象から外します

Contrastは、リクエストボディ全体を引き続き監視します

Cookieによる入力の例外

Cookieによる入力の例外は、指定されたCookieに関連する検出結果を報告したくない場合に便利です。

例:

Image shows basic settings for a Cookie input exclusion for the sessionID cookie.

例外にするCookieとしてsessionID を指定した場合、ContrastでHTTPリクエストがどのように処理されるかの例を次に示します。

HTTPリクエスト

例外(対象外)にする場合...

対象に含める場合...

GET /someRequest

Cookie: sessionID=excludedValue; otherCookie=includedValue

Contrastは、次のCookieを監視対象から外します:

sessionID=excludedValue

Contrastは、次のCookieを引き続き監視します:

otherCookie=includedValue