/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include A rule statement that defines a string match search for WAF to apply to web
* requests. The byte match statement provides the bytes to search for, the
* location in requests that you want WAF to search, and other settings. The bytes
* to search for are typically a string that corresponds with ASCII characters. In
* the WAF console and the developer guide, this is called a string match
* statement.See Also:
AWS
* API Reference
A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline const Aws::Utils::ByteBuffer& GetSearchString() const{ return m_searchString; } /** *A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline bool SearchStringHasBeenSet() const { return m_searchStringHasBeenSet; } /** *A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline void SetSearchString(const Aws::Utils::ByteBuffer& value) { m_searchStringHasBeenSet = true; m_searchString = value; } /** *A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline void SetSearchString(Aws::Utils::ByteBuffer&& value) { m_searchStringHasBeenSet = true; m_searchString = std::move(value); } /** *A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline ByteMatchStatement& WithSearchString(const Aws::Utils::ByteBuffer& value) { SetSearchString(value); return *this;} /** *A string value that you want WAF to search for. WAF searches only in the part * of web requests that you designate for inspection in FieldToMatch. The * maximum length of the value is 200 bytes.
Valid values depend on the
* component that you specify for inspection in FieldToMatch
:
Method
: The HTTP method that you want WAF to search for.
* This indicates the type of operation specified in the request.
UriPath
: The value that you want WAF to search for in the URI
* path, for example, /images/daily-ad.jpg
.
* HeaderOrder
: The comma-separated list of header names to match for.
* WAF creates a string that contains the ordered list of header names, from the
* headers in the web request, and then matches against that string.
If SearchString
includes alphabetic characters A-Z and
* a-z, note that the value is case sensitive.
If you're using the WAF * API
Specify a base64-encoded version of the value. The maximum * length of the value before you base64-encode it is 200 bytes.
For
* example, suppose the value of Type
is HEADER
and the
* value of Data
is User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64-encoding and include the
* resulting value, QmFkQm90
, in the value of
* SearchString
.
If you're using the CLI or one of the * Amazon Web Services SDKs
The value that you want WAF to search for. * The SDK automatically base64 encodes the value.
*/ inline ByteMatchStatement& WithSearchString(Aws::Utils::ByteBuffer&& value) { SetSearchString(std::move(value)); return *this;} /** *The part of the web request that you want WAF to inspect.
*/ inline const FieldToMatch& GetFieldToMatch() const{ return m_fieldToMatch; } /** *The part of the web request that you want WAF to inspect.
*/ inline bool FieldToMatchHasBeenSet() const { return m_fieldToMatchHasBeenSet; } /** *The part of the web request that you want WAF to inspect.
*/ inline void SetFieldToMatch(const FieldToMatch& value) { m_fieldToMatchHasBeenSet = true; m_fieldToMatch = value; } /** *The part of the web request that you want WAF to inspect.
*/ inline void SetFieldToMatch(FieldToMatch&& value) { m_fieldToMatchHasBeenSet = true; m_fieldToMatch = std::move(value); } /** *The part of the web request that you want WAF to inspect.
*/ inline ByteMatchStatement& WithFieldToMatch(const FieldToMatch& value) { SetFieldToMatch(value); return *this;} /** *The part of the web request that you want WAF to inspect.
*/ inline ByteMatchStatement& WithFieldToMatch(FieldToMatch&& value) { SetFieldToMatch(std::move(value)); return *this;} /** *Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
Text transformations eliminate some of the unusual formatting that attackers
* use in web requests in an effort to bypass detection. Text transformations are
* used in rule match statements, to transform the FieldToMatch
* request component before inspecting it, and they're used in rate-based rule
* statements, to transform request components before using them as custom
* aggregation keys. If you specify one or more transformations to apply, WAF
* performs all transformations on the specified content, starting from the lowest
* priority setting, and then uses the component contents.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.
The area within the portion of the web request that you want WAF to search
* for SearchString
. Valid values include the following:
* CONTAINS
The specified part of the web request must include the
* value of SearchString
, but the location doesn't matter.
* CONTAINS_WORD
The specified part of the web request must include
* the value of SearchString
, and SearchString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, SearchString
must be a word, which means that both of the
* following are true:
SearchString
is at the
* beginning of the specified part of the web request or is preceded by a character
* other than an alphanumeric character or underscore (_). Examples include the
* value of a header and ;BadBot
.
* SearchString
is at the end of the specified part of the web request
* or is followed by a character other than an alphanumeric character or underscore
* (_), for example, BadBot;
and -BadBot;
.
EXACTLY
The value of the specified part of the web
* request must exactly match the value of SearchString
.
* STARTS_WITH
The value of SearchString
must appear at
* the beginning of the specified part of the web request.
ENDS_WITH *
The value of SearchString
must appear at the end of the
* specified part of the web request.