Risk Scoring & Long-Lived Session Profiles
How WAFs Decide Who You Are
A modern WAF is not a gate; it is a bookkeeper. Every request and every session produces a score that accumulates and decays over time. Understanding the ledger model tells you exactly which behaviors matter and which are cosmetic.
The Ledger
Each session has a running risk score fed by dozens of weighted signals: IP reputation, TLS fingerprint quality, JS challenge success, biometrics, historical hit rates, account age, and past challenge patterns. Signals decay: a clean hour of browsing overwrites an old anomaly. The WAF acts only when the score crosses action thresholds (soft challenge, interstitial, CAPTCHA, block). The implication is powerful: a habitually clean low-risk session can absorb occasional imperfect requests, while a habitually flagged session is poisoned even if every new request is perfect.
Session vs. Connection
A session is a logical identity—a browser profile, a set of cookies, a history of visited pages. A connection is a physical TLS link. WAFs link them via cookies and fingerprint. If you want a session to stay low-risk, keep the fingerprint, the cookies, and the IP pool region stable for the lifetime of the profile. A login, then five minutes of inactivity, then nineteen detail-page requests, maintains the ledger as one coherent human-like day. Opening a fresh browser identity for every request fragments the ledger into dozens of suspicious snippets.
Account Age and Warmup
For authenticated scraping (pricing lists, seat inventories, account-gated feeds), the ledger includes account-level signals: how old the account is, how many devices/IPS have logged in, and prior automated-looking activity. New accounts that immediately scrape are textbook detection triggers. Many operations "warm up" accounts: register, log in from one stable IP, browse like a person for days, and only then point them at high-volume automation. Warm-up time is a direct insurance premium against account bans.
A Habitually Clean Profile Is a Shield
The ledger model has a strategic implication: you should invest in keeping some profiles pristine. A profile that has browsed the target site like a human for weeks, accumulated logins, read a few articles, and never scraped a single row will carry a very low baseline risk score. When you finally point that profile at a hard scraping job, its accumulated trust lets it absorb mistakes that would instantly kill a brand-new profile. Cultivate a stable of "aged" accounts the way you would cultivate a good credit score.
Close the Loop With Real Telemetry
You cannot manage a ledger you cannot see. Many WAFs expose some observable metadata to the client—challenge frequency, challenge type, and the presence of clearance cookies. Instrument those signals per profile: count challenges per hundred requests, track how often the profile returns 403s, and record how long clearances last. Over time these create a per-profile "health score" that mirrors the WAF's own ledger and lets you rotate work away from degrading profiles before they are banned.
Sessions Should End, Too
Humans do not maintain a single unbroken session for 30 hours. They log in, do a batch of work, close the tab, and come back later. Give long-running profiles a daily rhythm: active windows, idle gaps, and occasional multi-hour absences. Matching the WAF's expected activity curve keeps your traffic inside the "human-shaped" envelope.
The Lifetime of a Profile
Track four lifecycle variables for every profile: 1. Age (how long the identity has "existed"). 2. Fingerprint stability (has anything changed?). 3. Trust level (accumulated risk score trajectory). 4. Ban state (soft-blocked, CAPTCHA-gated, or hard-banned).
Operate each profile within its trust envelope and rotate work away from profiles whose score is climbing. A fleet with tiered trust—new, maturing, mature profiles—lets you keep scraping through a maturing tier while the mature tier does the heavy lifting.