

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、 コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# での事前解析テキスト変換の使用 AWS WAF
<a name="waf-rule-statement-preparse-transformation"></a>

事前解析テキスト変換は、未加工のクエリ文字列を正規化してから AWS WAF 、個々のクエリ引数に解析します。これらの変換は、パーサー差分攻撃と HTTP パラメータ汚染 (HPP) に対処し、攻撃者はクエリ文字列区切り文字をエンコードまたは操作して検査ルールをバイパスします。

事前解析テキスト変換は、リクエストコンポーネントが `SingleQueryArgument`または の場合にのみ使用できます`AllQueryArguments`。 AWS WAF は、標準テキスト変換の前に事前解析テキスト変換を適用します。ルールステートメントごとに最大 10 個の事前解析テキスト変換を指定できます。事前解析テキスト変換ごとに、ルールステートメントのコストに 10 WCUs が追加されます。

API では、ルールステートメントのオプション`PreParseTextTransformations`設定を使用して事前解析テキスト変換を設定します。

**注記**  
事前解析正規化が必要ない場合は、事前解析テキスト変換を指定しないでください。デフォルトの動作は で`NONE`、未加工のクエリ文字列は変更せずにパーサーに渡されます。

次の事前解析テキスト変換を使用できます。

None – `NONE`  
AWS WAF は、事前解析テキスト変換なしで、受信したウェブリクエストを検査します。

URL decode – `URL_DECODE`  
AWS WAF URL は解析前に raw クエリ文字列をデコードします。%HH シーケンスをデコードします (たとえば、%26 が & になり、%3D が = になります）。これにより、以前にエンコードされた新しいクエリパラメータの境界が公開される可能性があります。

URL decode Unicode – `URL_DECODE_UNI`  
と同様ですが`URL_DECODE`、Unicode でエンコードされたシーケンス (%uHHH) もデコードします。コードが `FF01-FF5E` の全角 ASCII コード範囲内にある場合、高位バイトを使用して下位バイトが検出され、調整されます。それ以外の場合は、下位バイトのみが使用され、高位バイトはゼロになります。

Combine duplicate query arguments by comma – `COMBINE_DUPLICATE_QUERY_ARGS_BY_COMMA`  
AWS WAF は、重複するクエリパラメータキーのすべての値を最初の出現位置の単一のカンマ区切り (0x2C) 文字列にマージし、後の重複を削除します。例えば、`a=1&b=2&a=3` は `a=1,3&b=2` になります。この変換は、バックエンドが重複するクエリパラメータを配列に結合する場合に使用します。これは .NET、API Gateway、Express.js で一般的です。 AWS WAF は結合された値を 1 つのユニットとして検査します。

Replace semicolons with ampersands – `REPLACE_SEMICOLONS_WITH_AMPERSANDS`  
AWS WAF は、解析前に raw クエリ文字列内のすべてのセミコロン (0x3B) をアンパサンド (0x26) に置き換えます。 AWS API Gateway REST APIs を含む一部のウェブフレームワークとサービスは、セミコロンをアンパサンドに相当するクエリパラメータ区切り文字として扱います。この変換はクエリ文字列を正規化します。 AWS WAF その後、バックエンドと同じようにセミコロンで分割されるため、一貫したパラメータ解析が可能になります。