/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the wafv2-2019-07-29.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.WAFV2.Model
{
///
/// Text transformations eliminate some of the unusual formatting that attackers use in
/// web requests in an effort to bypass detection.
///
public partial class TextTransformation
{
private int? _priority;
private TextTransformationType _type;
///
/// Gets and sets the property Priority.
///
/// Sets the relative processing order for multiple transformations. WAF processes all
/// transformations, from lowest priority to highest, before inspecting the transformed
/// content. The priorities don't need to be consecutive, but they must all be different.
///
///
///
[AWSProperty(Required=true, Min=0)]
public int Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property Type.
///
/// You can specify the following transformation types:
///
///
///
/// BASE64_DECODE - Decode a Base64
-encoded string.
///
///
///
/// BASE64_DECODE_EXT - Decode a Base64
-encoded string, but use a
/// forgiving implementation that ignores characters that aren't valid.
///
///
///
/// CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness
/// of attackers who inject an operating system command-line command and use unusual formatting
/// to disguise some or all of the command.
///
/// -
///
/// Delete the following characters:
\ " ' ^
///
/// -
///
/// Delete spaces before the following characters:
/ (
///
/// -
///
/// Replace the following characters with a space:
, ;
///
/// -
///
/// Replace multiple spaces with one space
///
///
-
///
/// Convert uppercase letters (A-Z) to lowercase (a-z)
///
///
///
/// COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal
/// 32):
///
/// -
///
///
\f
, formfeed, decimal 12
///
/// -
///
///
\t
, tab, decimal 9
///
/// -
///
///
\n
, newline, decimal 10
///
/// -
///
///
\r
, carriage return, decimal 13
///
/// -
///
///
\v
, vertical tab, decimal 11
///
/// -
///
/// Non-breaking space, decimal 160
///
///
///
/// COMPRESS_WHITE_SPACE
also replaces multiple spaces with one space.
///
///
///
/// CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules
/// syndata.html#characters
. This function uses up to two bytes in the decoding
/// process, so it can help to uncover ASCII characters that were encoded using CSS encoding
/// that wouldn’t typically be encoded. It's also useful in countering evasion, which
/// is a combination of a backslash and non-hexadecimal characters. For example, ja\vascript
/// for javascript.
///
///
///
/// ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a
,
/// \b
, \f
, \n
, \r
, \t
,
/// \v
, \\
, \?
, \'
, \"
,
/// \xHH
(hexadecimal), \0OOO
(octal). Encodings that aren't
/// valid remain in the output.
///
///
///
/// HEX_DECODE - Decode a string of hexadecimal characters into a binary.
///
///
///
/// HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters.
/// HTML_ENTITY_DECODE
performs these operations:
///
/// -
///
/// Replaces
(ampersand)quot;
with "
///
/// -
///
/// Replaces
(ampersand)nbsp;
with a non-breaking space, decimal 160
///
/// -
///
/// Replaces
(ampersand)lt;
with a "less than" symbol
///
/// -
///
/// Replaces
(ampersand)gt;
with >
///
/// -
///
/// Replaces characters that are represented in hexadecimal format,
(ampersand)#xhhhh;
,
/// with the corresponding characters
///
/// -
///
/// Replaces characters that are represented in decimal format,
(ampersand)#nnnn;
,
/// with the corresponding characters
///
///
///
/// JS_DECODE - Decode JavaScript escape sequences. If a \
u
/// HHHH
code is in the full-width ASCII code range of FF01-FF5E
,
/// then the higher byte is used to detect and adjust the lower byte. If not, only the
/// lower byte is used and the higher byte is zeroed, causing a possible loss of information.
///
///
///
///
/// LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z).
///
///
///
/// MD5 - Calculate an MD5 hash from the data in the input. The computed hash
/// is in a raw binary form.
///
///
///
/// NONE - Specify NONE
if you don't want any text transformations.
///
///
///
///
/// NORMALIZE_PATH - Remove multiple slashes, directory self-references, and directory
/// back-references that are not at the beginning of the input from an input string.
///
///
///
/// NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH
, but
/// first converts backslash characters to forward slashes.
///
///
///
/// REMOVE_NULLS - Remove all NULL
bytes from the input.
///
///
///
/// REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/*
/// ... */
) with a single space. Multiple consecutive occurrences are not compressed.
/// Unterminated comments are also replaced with a space (ASCII 0x20). However, a standalone
/// termination of a comment (*/
) is not acted upon.
///
///
///
/// REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII
/// 0x20
).
///
///
///
/// SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243
) will
/// be decoded to (ABC
).
///
///
///
/// URL_DECODE - Decode a URL-encoded value.
///
///
///
/// URL_DECODE_UNI - Like URL_DECODE
, but with support for Microsoft-specific
/// %u
encoding. If the code is in the full-width ASCII code range of FF01-FF5E
,
/// the higher byte is used to detect and adjust the lower byte. Otherwise, only the lower
/// byte is used and the higher byte is zeroed.
///
///
///
/// UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This helps
/// input normalization, and minimizing false-positives and false-negatives for non-English
/// languages.
///
///
[AWSProperty(Required=true)]
public TextTransformationType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}