The Bot Passed Your CAPTCHA. What Did It Do Next?

Illustrated infographic summarizing: The Bot Passed Your CAPTCHA. What Did It Do Next?

By Greg Nowak. Last updated 2026-08-11.

A passed CAPTCHA or Turnstile challenge is reassuring, but it is not a verdict on the visitor. Modern automation can run JavaScript, operate through a real browser and behave normally for the few seconds needed to clear a checkpoint.

The useful question comes next. What did that session actually do? Did it create one account or hundreds? Browse a handful of products or work methodically through the catalogue? Leave a genuine review or add to a coordinated publishing pattern?

Cloudflare made that distinction explicit when it launched Precursor in July 2026. Instead of judging a visitor at one moment, the system continuously evaluates client-side behavioural signals across the journey. Challenges still have a role, but as one piece of evidence rather than the final decision.

A passed challenge answers one narrow question

Turnstile evaluates browser and client-side signals around a sensitive action such as signup, login or checkout. A pass means the interaction satisfied the challenge. It does not prove that later requests are harmless, the account belongs to a trustworthy person or the transaction makes sense for the business.

That distinction matters because abuse often consists of actions that look ordinary in isolation. One new account is unremarkable. Hundreds of accounts spread across proxy addresses may be used for promotion abuse or spam. A product search is expected; systematic catalogue extraction is different. A customer review may be valuable, while coordinated review generation can distort decisions and damage reputation.

OWASP’s account-creation threat description links bulk registration to content spam, malware distribution, reputation damage and manipulation of reviews, surveys and search results. The job is not merely to make a form harder to submit. It is to stop a useful business capability from being exploited at scale.

Start with the endpoint

Controls should reflect what each endpoint lets a visitor accomplish. OWASP recommends mapping application endpoints to specific automated threats before choosing defences. A login route, search function, review form and checkout have different risks, so they should not share one blunt threshold.

Endpoint What to watch after the challenge Controls worth considering
Signup Account velocity across sessions, addresses and device signals Email or phone verification, identity and device limits, honeypots
Login Repeated attempts against one identity or many identities Per-account rate limits, breached-password checks, step-up authentication
Search or catalogue Systematic traversal, sustained request rates and repeated query patterns Identity-aware quotas, behavioural signals, differentiated API access
Reviews or comments Coordinated publishing, concentration among new accounts and reputation patterns Delayed publishing, reputation checks, review queues
Cart or checkout Rapid purchases, repeated payment attempts and inventory reservation Purchase limits, queues, server-side transaction checks
The challenge is a checkpoint. The stronger controls reflect the business action behind each endpoint.

This matches the layered approach in the OWASP Bot Management and Anti-Automation Cheat Sheet: network signals at the edge, session and identity controls in the application, and account or transaction rules in the backend. A request can look acceptable at one layer and still fail a business rule at another.

Validate the token where the decision happens

Showing a challenge in the browser is only half the implementation. Before processing the protected action, the application must send the token to Turnstile’s verification service and validate the response on the server. Cloudflare’s guidance for integrating Turnstile, WAF and Bot Management treats the widget and server-side validation as two required parts of the same control.

This deserves a careful review because a visible widget can create false confidence. If the backend accepts a signup, login or checkout without successful token verification, automation may bypass the page and call the route directly. Every route that performs the protected operation needs coverage, including less obvious alternatives to the main form.

The surrounding tools contribute different evidence. The WAF works with network-level signals. Bot Management evaluates requests for signs of automation. Turnstile adds browser and client-side information. None of them replaces the application’s own authorization, velocity limits or transaction rules.

Correlate activity, but do not treat an IP address as a person

IP limits remain a useful basic control, but they are a poor identity system. Proxy pools allow one operation to rotate through many addresses. Shared networks create the opposite problem by placing many legitimate users behind the same address. An IP-only rule can therefore miss distributed abuse while inconveniencing genuine visitors.

Cloudflare’s Ephemeral IDs tutorial describes a short-lived, account-scoped signal that can help correlate high-volume activity when IP addresses change. The ID is returned during server-side Siteverify processing and can be logged alongside protected events such as signup, login or checkout. It is most useful when combined with IP reputation and behavioural evidence.

There is a limit worth making explicit: an Ephemeral ID is not guaranteed to represent one unique device. Privacy-focused browsers may expose fewer signals, which can cause legitimate users to share an identifier. Cloudflare therefore recommends conservative thresholds and using the signal to identify high-volume patterns. It should change the confidence of a decision, not become an unquestioned identity claim.

Match the response to the risk

Good bot management does not mean blocking everything unusual. Legitimate crawlers, monitoring tools, accessibility technology and privacy-hardened browsers can all behave differently from typical consumer traffic. OWASP recommends a graduated response: observe low-confidence activity, ask for stronger verification when confidence rises, restrict specific actions at higher confidence and preserve evidence for confirmed abuse.

This also helps protect conversion. A suspicious session might still browse while checkout is restricted. A new account could be created but prevented from publishing until its email is verified. A questionable review can enter moderation instead of being accepted or rejected immediately. The intervention stays tied to the possible harm.

Honeypot fields add a low-friction application signal. Rate limits become more useful when they consider several keys, including endpoint, session, authenticated identity and network attributes. No detector needs to be perfect if bypassing one control still leaves sensible limits around the underlying capability.

Roll out with evidence and a rollback path

Begin with an endpoint inventory and a baseline. Record request volumes, existing failure rates, challenge outcomes and the conversion steps the business cares about. Add structured decision logs that capture the route, request or session reference, relevant signals, applied rule and result. Keep personal data to a minimum and retain raw signals only as long as needed.

Where practical, run new rules in observation mode first. Compare their decisions with known abuse, support reports and changes in legitimate completion rates. Then tighten enforcement endpoint by endpoint, starting with rules that have clear business meaning: account velocity, verified contact details, per-identity quotas or purchase limits.

Every rule needs an owner, an explainable threshold and a rollback condition. A sophisticated rule that quietly rejects valuable customers has failed. So has an alert that nobody reviews. Monitoring needs to show both outcomes: whether abuse declined and whether legitimate journeys remained intact.

The operational question is what happened next

Precursor’s session-level model reflects a wider change in web operations. An isolated request or completed challenge tells only part of the story. The sequence of actions, interpreted in context, is what reveals intent.

For a focused engagement, Greg can map abuse risks to individual endpoints, check server-side Turnstile validation, improve session correlation without relying solely on IP addresses, and combine Turnstile with WAF rules, rate limits, honeypots and application checks. The result should be a staged, observable control system with documented thresholds and rollback paths, not simply another widget added to a form.

The bot may pass the CAPTCHA. Your application still decides what it is allowed to do next.

Related on GrN.dk

Need help with this kind of work?

Review your bot defences with Greg Get in touch with Greg.

Sources

Latest articles

Before closing an Apache patch ticket, check what is running, which fixes the package contains, and whether the updated service passes configuration and application checks.

Make monthly reporting easier to repeat with AI for Excel, Python and consistent checks. Get imports, error lists and reconciliation under control so the numbers can be verified.

A supplier PDF can influence more than an AI summary. Follow its path to a CRM update and see where validation, tool permissions and destination controls matter.

Check whether AI shopping channels show the right product, variant, price and availability, then trace discrepancies from your catalog through to checkout.

Add approved hours from Clockify to draft invoices in Dinero. AI writes service descriptions, while fixed rules govern amounts, approvals and reruns.

A blanket AI restriction can limit search discovery. Compare Google and Bing controls, agree content permissions, and check what your CMS actually delivers.

Measure AI automation costs per accepted result, including retries and human review. Check caching, batch processing and spending controls before scaling.

A 502 after maintenance can interrupt enquiries or checkout. Trace the NGINX-to-PHP connection, diagnose the failure, and check the fix survives a restart.

Let AI customer service retrieve order status from Shopify and Shipmondo. Learn how to define the scope, verify the customer's identity and hand over cases when information is uncertain.

Move a useful AI workflow into company-controlled projects, with clear ownership, tested permissions, service accounts and a practical plan for replacing credentials.