Recipe 15-2: Validating Users with CAPTCHA Testing
This recipe shows you how to verify that the client is human by using CAPTCHA testing.
Ingredients
- ModSecurity
- SecContentInjection directive
- SecStreamOutBodyInspection directive
- STREAM_OUTPUT_BODY variable
- @rsub operator
Recipe 15-1 identified automated programs by confirming that the client can execute JavaScript. This method may not work, however, if some of your clients have disabled JavaScript in their web browsers. How else can we validate that clients are real people and not automated programs? This is the purpose of the Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA) concept.
CAPTCHA Defined
CAPTCHAs are often used to help prevent certain automated attacks:
- Automated account registrations
- Automated ticket purchasing (queue jumping)
- Blog comment spam
Figure 15-1 shows an example of common blog comment spam for a WordPress site that promotes discounted medication.
Keep in mind that these types of comment spam ...