ltm rule command BOTDEFENSE captcha status
iRule(1) BIG-IP TMSH Manual iRule(1)
BOTDEFENSE::captcha_status
Returns the status of the user's answer to the CAPTCHA challenge.
SYNOPSIS
BOTDEFENSE::captcha_status
DESCRIPTION
Returns the status of the user's answer to the CAPTCHA challenge. The returned value is one of the following
strings:
* not_received - the answer to the CAPTCHA challenge did not appear in the request; this is the normal
result, before the CAPTCHA challenge is sent to the client
* correct - the answer is correct
* incorrect - the answer is incorrect
* empty - an empty answer was given, or if the user clicked on the CAPTCHA Refresh button
* expired - the answer has expired; in this case, the answer is not validated and may be correct or
incorrect
* invalid - the cookie containing the CAPTCHA answer cannot be parsed; this could mean that it was
modified by an attacker, or that it is older than two days, or due to a configuration change
* renewal - CAPTCHA challenge answer is about to expire.
Syntax
BOTDEFENSE::captcha_status
RETURN VALUE
Returns a string signifying the status of the CAPTCHA challenge.
VALID DURING
BOTDEFENSE_ACTION
EXAMPLES
# EXAMPLE: Send a CAPTCHA challenge on the login page, and only allow the
# login if the user passed the CAPTCHA challenge
when BOTDEFENSE_ACTION {
if {[BOTDEFENSE::action] eq "allow"} {
if {[BOTDEFENSE::captcha_status] ne "correct"} {
if {[HTTP::uri] eq "/t/login.php"} {
set res [BOTDEFENSE::action captcha_challenge]
if {$res ne "ok"} {
log local0. "cannot send captcha_challenge: \"$res\""
BOTDEFENSE::action tcp_rst
}
} elseif {[HTTP::uri] eq "/t/do_login.php"} {
set res [BOTDEFENSE::action custom_response {
login failed because you may not be human
}]
if {$res ne "ok"} {
log local0. "cannot send blocking page: \"$res\""
BOTDEFENSE::action tcp_rst
}
}
}
}
}
HINTS
SEE ALSO
CHANGE LOG
@BIGIP-12.1 --First introduced the command.
BIG-IP 2020-06-23 iRule(1)