Copyright | (c) 2013-2023 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data ByteMatchStatement = ByteMatchStatement' {}
- newByteMatchStatement :: ByteString -> FieldToMatch -> NonEmpty TextTransformation -> PositionalConstraint -> ByteMatchStatement
- byteMatchStatement_searchString :: Lens' ByteMatchStatement ByteString
- byteMatchStatement_fieldToMatch :: Lens' ByteMatchStatement FieldToMatch
- byteMatchStatement_textTransformations :: Lens' ByteMatchStatement (NonEmpty TextTransformation)
- byteMatchStatement_positionalConstraint :: Lens' ByteMatchStatement PositionalConstraint
Documentation
data ByteMatchStatement Source #
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: newByteMatchStatement
smart constructor.
ByteMatchStatement' | |
|
Instances
newByteMatchStatement Source #
:: ByteString | |
-> FieldToMatch | |
-> NonEmpty TextTransformation | |
-> PositionalConstraint | |
-> ByteMatchStatement |
Create a value of ByteMatchStatement
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:searchString:ByteMatchStatement'
, byteMatchStatement_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 50 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
.
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 50 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.--
-- Note: This Lens
automatically encodes and decodes Base64 data.
-- The underlying isomorphism will encode to Base64 representation during
-- serialisation, and decode from Base64 representation during deserialisation.
-- This Lens
accepts and returns only raw unencoded data.
$sel:fieldToMatch:ByteMatchStatement'
, byteMatchStatement_fieldToMatch
- The part of the web request that you want WAF to inspect.
$sel:textTransformations:ByteMatchStatement'
, byteMatchStatement_textTransformations
- Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
$sel:positionalConstraint:ByteMatchStatement'
, byteMatchStatement_positionalConstraint
- 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.
byteMatchStatement_searchString :: Lens' ByteMatchStatement ByteString Source #
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 50 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
.
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 50 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.--
-- Note: This Lens
automatically encodes and decodes Base64 data.
-- The underlying isomorphism will encode to Base64 representation during
-- serialisation, and decode from Base64 representation during deserialisation.
-- This Lens
accepts and returns only raw unencoded data.
byteMatchStatement_fieldToMatch :: Lens' ByteMatchStatement FieldToMatch Source #
The part of the web request that you want WAF to inspect.
byteMatchStatement_textTransformations :: Lens' ByteMatchStatement (NonEmpty TextTransformation) Source #
Text transformations eliminate some of the unusual formatting that
attackers use in web requests in an effort to bypass detection. If you
specify one or more transformations in a rule statement, WAF performs
all transformations on the content of the request component identified
by FieldToMatch
, starting from the lowest priority setting, before
inspecting the content for a match.
byteMatchStatement_positionalConstraint :: Lens' ByteMatchStatement PositionalConstraint Source #
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.