ビュー:

検出理由

URI (Uniformed Resource Identifier) に使用可能な文字、使用不可能な文字は RFC3986 に記載されています。RFC に準拠したブラウザで正常な方法でアクセスを試みた場合には、使用不可能な文字はパーセントエンコードされた状態で送信されますが、URI で使用不可能な文字がパーセントエンコードされていない状態で送信されている場合、RFC に従わない不正なリクエストのためイベントが発生します。

例)GET /test.asp?a=test1|b=test2 HTTP/1.1 ('|' が使用不可能な文字)
検出されたイベントの [データ] タブから、URI に使用不可能な文字の近辺が赤くハイライトされている事をご確認ください。ただし、赤いハイライトは参考情報のため、検出部分を特定したい場合はデータをはじめから確認する必要があります。また、[データ] タブ上に赤くハイライトされている文字が存在しない該当イベントが発生している場合、最新の Patch で修正されている既知の問題 (バージョン 9.0 のみ) に該当する可能性がありますので、最新ビルドへのアップグレードを行ってください。

回避方法

RFC に従わないパケットのため、基本的には不正なリクエストと考えられますが、一部の Web ブラウザ/クライアントは RFC に準拠しない動作をする場合があります。このようなクライアントを使用している事が原因であり、該当パケットが正常なリクエストである事が確認できて、この検出を回避したい場合は、以下の設定を行ってください。
  1. 管理コンソールの [ポリシー] > [共通オブジェクト] > [ルール] > [侵入防御ルール] 画面から「1000128 - HTTP Protocol Decoding」ルールのプロパティを開きます。画面右上にある検索ボックスから、「1000128」といったキーワードで検索を行うと、よりスムーズに本ルールを見つけることができます。
  2. [設定] タブの下部にある「Specific all raw characters that are not allowed in a URI:」に記載されている「0x00-0x19,0x7f-0xff」から、許可したい文字を削除します。

    ヒント

    バージョン 9.5 の場合、初期設定では空欄になっています。

  3. 「OK」ボタンをクリックします。

初期設定で拒否される文字

16進コード

文字

00

NUL (Null文字)

01

SOH (ヘッダ開始)

02

STX (テキスト開始)

03

ETX (テキスト終了)

04

EOT (転送終了)

05

ENQ (問い合わせ)

06

ACK (肯定応答)

07

BEL (ベル)

08

BS (バックスペース)

09

HT (水平タブ)

0A

LF (改行)

0B

VT (垂直タブ)

0C

FF (改ページ)

0D

CR (復帰)

0E

SO (シフトアウト)

0F

SI (シフトイン)

10

DLE (伝送制御拡張)

11

DC1 (装置制御1)

12

DC2 (装置制御2)

13

DC3 (装置制御3)

14

DC4 (装置制御4)

15

NAK (否定応答)

16

SYN (同期)

17

ETB (転送ブロック終了)

18

CAN (キャンセル)

19

EM (メディア終了)

7F

DEL (削除)

80-FF

非 ASCII 文字