Wat user-agent-spoofing is
Elke HTTP-client kan een User-Agent-header meesturen die zichzelf beschrijft: een browsernaam en versie, een crawlernaam, een bibliotheekidentifier. De header is zelf gerapporteerd. Niets in HTTP controleert of dit waar is, dus elke client kan elke waarde meesturen. User-agent-spoofing is de praktijk van een waarde meesturen die de client verkeerd weergeeft, bijvoorbeeld:
- een automatiseringsscript dat zichzelf presenteert als een actuele desktopbrowser,
- een scraper die beweert een bekende zoekcrawler te zijn om gunstige behandeling te krijgen,
- een AI-agent die een generieke browserstring gebruikt zodat die als een persoon wordt behandeld.
Waarom dit ertoe doet
Veel systemen nemen nog steeds beslissingen op basis van de user-agent-string: bekende crawlers op een allowlist zetten, andere content tonen aan bots, of automatisering uitsluiten van analytics. Elke dergelijke beslissing erft de zwakte van de header. Als een policy zegt "toestaan wat beweert crawler X te zijn", dan wordt iedereen toegestaan die de string van crawler X kopieert.
Voor applicaties die verkeer van AI-agents ontvangen, wordt dit na verloop van tijd belangrijker. Agents draaien steeds vaker in echte browsers of headless browser frameworks, waardoor hun user-agent-strings exact op die van menselijke browsers lijken. Andere identificeren zich eerlijk. De header alleen kan niet vertellen welke welke is. Ons bericht over hoe u kunt vaststellen of websiteverkeer van AI-agents komt bekijkt de signalen die beter werken.
Beter bewijs dan de header
- Cryptografische handtekeningen. Met HTTP Message Signatures en het Web Bot Auth-werk bewijst een client dat hij een sleutel bezit die is gepubliceerd door de operator die hij noemt. Een gekopieerde user-agent-string kan geen handtekening reproduceren.
- Verificatie gepubliceerd door de operator. Sommige crawleroperators publiceren IP-bereiken of ondersteunen reverse-DNS-controles, waardoor imiteren moeilijker wordt dan met de header alleen. Google documenteert een reverse-DNS- en IP-bereikcontrole voor zijn crawlers, Microsoft biedt een Verify Bingbot-tool, en OpenAI publiceert IP-adresbestanden voor elk van zijn bots. Anthropic's richtlijnen voor zijn gehoste browseragent stellen duidelijk dat iedereen dezelfde User-Agent-header kan meesturen en raden aan de gepubliceerde IP-adressen te controleren.
- Consistentiecontroles. Het vergelijken van de beweerde client met protocoldetails en interactiesignalen kan laten zien wanneer een claim niet klopt, al levert dit inferentie op en geen bewijs.
- Credentials. Voor API's vertelt een API key of token u welk account de aanvraag doet, ongeacht wat de header zegt.
Veelvoorkomende misvattingen
- "Een browser-user-agent betekent een mens." Headless browsers en agent frameworks sturen routinematig browserstrings.
- "Een crawler-user-agent betekent de crawler." Zonder een handtekening of een verificatiecontrole van de operator is het slechts een claim.
- "Spoofing is altijd kwaadaardig." Sommige legitieme tools sturen generieke strings om te voorkomen dat ze kapotte pagina's krijgen. Spoofing is een reden om de header minder zwaar te laten meewegen, geen bewijs van kwade opzet.
Hoe Proof of Actor de user-agent-string behandelt
Proof of Actor registreert een user-agent-claim als declared bewijs: iets wat de client heeft gezegd, maar wat wel of niet waar kan zijn. Het verheft een declaratie nooit op zichzelf tot verified. Een aanvraag waarvan het enige identificerende bewijs een crawler-user-agent-string is, krijgt dienovereenkomstig een label, en wanneer het bewijs onvoldoende is, is het resultaat Unknown in plaats van een zelfverzekerde gok. Uw policies in Route kunnen vervolgens een verified signed agent anders behandelen dan een self-declared agent, bijvoorbeeld door beide toe te staan op read-only routes maar strengere limieten toe te passen op de declared variant.
Zie hoe evidence bases werken of vraag vroege toegang aan.
Bronnen
- RFC 9110: HTTP Semantics, User-Agent: de header wordt door de client zelf gerapporteerd
- Google: Verifying Google's crawlers and fetchers: reverse DNS en gepubliceerde controles van IP-bereiken
- Microsoft Bing: Verify Bingbot tool: controleren of een IP-adres tot Bingbot behoort
- OpenAI: Overview of OpenAI Crawlers: user agents en gepubliceerde IP-adresbestanden
- Anthropic: how Anthropic-hosted browsers identify themselves: waarschuwing dat de User-Agent-header kan worden gekopieerd