/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specifies that WAF should run a If the request includes a valid, unexpired challenge token,
* WAF applies any custom request handling and labels that you've configured and
* then allows the web request inspection to proceed to the next rule, similar to a
* If the request doesn't include a
* valid, unexpired challenge token, WAF discontinues the web ACL evaluation of the
* request and blocks it from going to its intended destination. WAF then
* generates a challenge response that it sends back to the client, which includes
* the following: The header The HTTP status code
* If the request contains an
* Challenges run silent browser interrogations in the background, and
* don't generally affect the end user experience. A challenge enforces
* token acquisition using an interstitial JavaScript challenge that inspects the
* client session for legitimate behavior. The challenge blocks bots or at least
* increases the cost of operating sophisticated bots. After the client
* session successfully responds to the challenge, it receives a new token from
* WAF, which the challenge script uses to resubmit the original request. You can configure the expiration time in the
* This action option is available for rules. It isn't available for web ACL
* default actions. Challenge
check against the
* request to verify that the request is coming from a legitimate client session:
*
CountAction
.
x-amzn-waf-action
with
* a value of challenge
. 202 Request Accepted
. Accept
header with a value of text/html
, the response
* includes a JavaScript page interstitial with a challenge script. ChallengeConfig
ImmunityTimeProperty
setting at the
* rule and web ACL level. The rule setting overrides the web ACL setting. See Also:
AWS
* API Reference
Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline const CustomRequestHandling& GetCustomRequestHandling() const{ return m_customRequestHandling; } /** *Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline bool CustomRequestHandlingHasBeenSet() const { return m_customRequestHandlingHasBeenSet; } /** *Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline void SetCustomRequestHandling(const CustomRequestHandling& value) { m_customRequestHandlingHasBeenSet = true; m_customRequestHandling = value; } /** *Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline void SetCustomRequestHandling(CustomRequestHandling&& value) { m_customRequestHandlingHasBeenSet = true; m_customRequestHandling = std::move(value); } /** *Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline ChallengeAction& WithCustomRequestHandling(const CustomRequestHandling& value) { SetCustomRequestHandling(value); return *this;} /** *Defines custom handling for the web request, used when the challenge * inspection determines that the request's token is valid and unexpired.
*For information about customizing web requests and responses, see Customizing * web requests and responses in WAF in the WAF Developer Guide.
*/ inline ChallengeAction& WithCustomRequestHandling(CustomRequestHandling&& value) { SetCustomRequestHandling(std::move(value)); return *this;} private: CustomRequestHandling m_customRequestHandling; bool m_customRequestHandlingHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws