Cloudflare ยท June 4, 2026

Public forms need abuse controls before they need polish

A contact form looks simple until it is indexed, shared, scraped, and submitted by automated traffic. Abuse controls should be part of the first implementation, not the cleanup sprint.

The controls do not need to be dramatic. Most public forms benefit from a few boring layers: rate limits, a challenge provider, honeypot fields, freshness checks, safe responses, and restrained logging.

The pattern

What we released

cloudflare-worker-abuse-defense-kit packages this as a small Worker starter with testable modules for rate limiting, Turnstile verification, and submission validation.

npm test
wrangler secret put TURNSTILE_SECRET

The exact limits and retention rules should follow the risk profile of the real workflow.