Quick answer
Bot management is the practice of telling automated traffic apart from human traffic and applying a different policy to each kind — allowing the bots you want, limiting the ones you tolerate, and stopping the ones that cost you money. It is distinct from DDoS protection: bots may arrive at completely ordinary request rates and still cause harm by scraping prices, testing stolen credentials or buying limited stock before your customers can.
01Why bots need their own policy
Automated traffic is now the majority. Imperva's 2026 Bad Bot Report found that bots generated more than 53% of all web traffic in 2025, up from 51% the year before, and the 2025 edition classed 37% of all 2024 traffic as bad bots. Much of the rest is neither an attack nor a customer. Treating everything as human means scrapers copy your catalogue; treating everything as suspicious breaks the integrations your business depends on.
OWASP's Automated Threats to Web Applications project names the abuse patterns and gives teams a shared vocabulary. These are the ones most sites meet first:
- Credential stuffing (OAT-008): mass login attempts that test leaked username and password pairs
- Scraping (OAT-011): competitors copying prices, listings or content wholesale
- Carding (OAT-001): validating stolen card numbers with small payment attempts
- Denial of inventory (OAT-021): holding limited stock in baskets that never check out, so real buyers cannot
- Scalping (OAT-005): buying limited goods faster than people can, usually to resell them
- Spamming (OAT-017): automated posts to forms, comments and sign-ups
02How bots are detected
No single signal is reliable, so detection across the industry stacks many weak ones. Individually each has false positives; together they are hard to fake consistently. OWASP's bot management cheat sheet recommends combining controls at the edge, in the application and in the back end for the same reason.
| Signal | What it reveals | Weakness |
|---|---|---|
| TLS fingerprint | Which library performed the handshake, whatever user-agent is claimed | Shared by every client on the same software, and can be imitated |
| HTTP/2 settings and header patterns | Whether the client behaves like the browser engine it claims to be | Proxies and privacy tools alter them for real users too |
| Behaviour | Whether pages load their sub-resources, how navigation flows, how fast pages are requested | Needs several requests before it says anything |
| Network | Datacentre ranges are normal for API clients and unusual for a claimed home browser | VPNs, corporate proxies and mobile carriers blur it |
| Challenge outcome | Whether the client can run JavaScript or complete a task | Headless browsers are real browsers and can pass |
| Account and business context | Login failure ratios, basket age, payment declines | Visible only in the application, often after the fact |
03Fingerprinting, and its limits
A TLS fingerprint such as JA3 or JA4 summarises how a client negotiates the connection: the cipher suites it offers, its extensions and, in JA3's case, their order. It identifies the underlying library, which is why a basic script claiming to be Chrome stands out: it negotiates like its HTTP library, not like Chrome.
The limit is that fingerprints are shared, not unique. Every Chrome user on the same version and platform presents essentially the same handshake, so a fingerprint identifies a class of software, never a person. Tools also exist that imitate browser handshakes closely, so a match shows what a client presents, not what it is. Fingerprinting is good at answering 'what software is this?' and poor at answering 'what does it intend?'
04Responses, from lightest to heaviest
Bot management is not a block button. The response should be proportionate to the confidence and to the cost of being wrong.
- Allow: verified crawlers and known integrations, passed without friction
- Rate limit: tolerated automation kept to a sane pace rather than shut out
- Automatic challenge: a check the browser completes without the visitor doing anything, such as a proof-of-work challenge; a brief pause for a person, a real cost for a script running at volume
- Interactive challenge: a visible check such as a CAPTCHA for when an automatic one is not enough, with an accessible alternative for people who cannot complete it
- Block: for unambiguous cases such as exploit probes, known attack tooling and verified impersonators
05Matching the response to the threat
Each automated threat leaves different traces and calls for different controls. Several of the strongest controls live in the application rather than at the edge, which is why bot management works best when security and product teams agree on it together.
| Threat | Typical traces | Proportionate controls |
|---|---|---|
| Credential stuffing | Many usernames per source, a high login failure ratio, attempts spread over many addresses | Per-account and per-route limits, a step-up challenge on login, multi-factor authentication, breached-password checks |
| Scraping | Systematic walks through listings or IDs, few page assets fetched, a steady pace around the clock | Rate limits per client, challenges on listing and search pages, caching so each copy costs you little |
| Carding | Many small payment attempts, a high decline rate, many cards per account or session | Limits on payment attempts per account, card and session; 3-D Secure; your payment provider's fraud tools |
| Denial of inventory | Baskets filled but never paid, many fresh accounts holding stock | Short basket hold times, per-account quantity caps, stock reserved only at payment |
| Spam | Form posts with no preceding page view, links in every field | A challenge on submission, server-side validation, moderation queues |
| Verified crawlers | A known operator and published address ranges | Allow, with gentle rate limits and good caching |
06Rolling it out without breaking things
Most of the damage bot management does comes from switching it on everywhere at once. A staged rollout avoids that.
- List the automation you depend on: search crawlers, uptime monitors, payment and webhook callbacks, partner APIs and your own mobile app
- Give machine clients an authenticated way in, such as API keys, signed webhooks or mutual TLS, instead of expecting them to behave like browsers
- Start in a log-only mode and review what would have been challenged; as OWASP's cheat sheet puts it, 'you cannot tune what you cannot see'
- Enforce first on the routes where abuse costs most: login, sign-up, checkout and search
- Watch business metrics as well as block counts: login success, conversion, basket abandonment and support tickets
- Keep an accessible alternative and a contact route for anyone who gets stuck
07The failure mode to design against
Every bot management system has a dial between catching bots and blocking customers, and the two are not equally expensive. Missing a scraper costs you some data. Blocking a customer costs you the customer, and they rarely tell you: they just leave.
Practical safeguards: corroborate before acting, prefer a challenge to a block where confidence is low, lift a client's penalties once it has proved itself, and review blocked traffic regularly for groups of legitimate users who share a trait, such as a school, an office network or an assistive technology.
Questions
Frequently asked questions
Sources
Sources and verification
- 01Bad Bot Report 2026: The Internet Is No Longer Human · Imperva
- 022025 Imperva Bad Bot Report: AI-driven bots surpass human traffic · Thales / Imperva
- 03OWASP Automated Threats to Web Applications · OWASP
- 04OAT-008 Credential Stuffing · OWASP
- 05Bot Management and Anti-Automation Cheat Sheet · OWASP Cheat Sheet Series
Last updated