>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
JavaScript

Ontdek welke bescherming er op een website draait en wat deze over je verzamelt

Scrapfly Anti-bot Detector banner

Iedereen die ooit een parser heeft geschreven of end-to-end testing op echte websites heeft opgezet, heeft meegemaakt dat het script plotseling een 403-status krijgt of eindeloos wordt doorgestuurd naar een blanco pagina. Je zit in DevTools, te schakelen tussen de Network- en Application-tabs, en probeert te raden: heeft Cloudflare het verzoek geblokkeerd, heeft DataDome een onzichtbare checklist ingevoegd, of heeft het paginascript stilzwijgend een Canvas- en WebGL-fingerprint genomen?

Het Scrapfly-team heeft een open-source Chrome-extensie uitgebracht genaamd Scrapfly Anti-bot Detector. Dit is een tool voor beveiligingsonderzoekers, pentesters en parser-ontwikkelaars die pagina's in realtime analyseert en toont welke beschermingssystemen actief zijn en welke fingerprinting-technieken er momenteel worden geactiveerd.

Detection overview

Wat de extensie kan detecteren

De extensie draait op Manifest V3 en stuurt geen gegevens naar externe servers. Alle analyse vindt lokaal plaats in de browser.

Het classificeert gedetecteerde beschermingsmechanismen in drie categorieën:

  • Bot-beschermingssystemen. Detecteert Cloudflare, Akamai, DataDome, PerimeterX, Imperva, Kasada, Shape Security en AWS WAF.
  • CAPTCHAs. Vindt reCAPTCHA, hCaptcha, FunCaptcha, GeeTest en Cloudflare Turnstile.
  • Digitale fingerprinting-technieken. Volgt 21 fingerprinting-methoden, waaronder Canvas, WebGL, AudioContext, fonts, WebRTC, Performance API, Navigator-eigenschappen en Storage.

| Detectie | Geschiedenis | Regels Editor | |---|---|---| | Detection | History | Rules |

Hoe meerlaagse detectie werkt

Anti-bot systemen onthullen zich zelden met een expliciete response-header. Meestal verspreiden ze hun logica over scripts, cookies en globale objecten. De extensie gebruikt vijf lagen van analyse tegelijkertijd.

Eerst inspecteert het de DOM. De extensie zoekt naar karakteristieke markup-elementen, class-namen en verbonden externe scripts.

Parallel controleert de service worker netwerkverzoeken, filtert headers, cookies, request-URL's en de bodies van verzonden payloads.

Het interessantste deel ligt in het onderscheppen van browser API-aanroepen. Voordat de paginascripts beginnen met uitvoeren (in stadium document_start), injecteert de extensie hooks in de hoofdcontext van de pagina (MAIN world). Als een beschermingsscript probeert een verborgen element op een canvas te tekenen of audio context-parameters op te vragen, registreert de hook de aanroep, verzamelt de aanroepparameters en geeft ze door via een geïsoleerde brug naar de detectormodule.

Hooks blijven niet oneindig actief: ze worden automatisch ontladen na twee seconden inactiviteit of 8 seconden nadat de pagina is gestart.

| Data extractie tools | Instellingen | |---|---|---| | Advanced Tools | Settings |

Ingebouwde tools voor diepgaande analyse

Naast een eenvoudige lijst van gedetecteerde leveranciers bevat de extensie een sectie Geavanceerde Tools. Het lost een praktisch probleem op: het extraheren van de parameters die nodig zijn voor het debuggen van automatisering.

  • Voor reCAPTCHA, hCaptcha en Turnstile vindt de module de SiteKey, container-selectors en geregistreerde JS callbacks.
  • Voor Akamai en DataDome onderschept het hulpprogramma gegenereerde sensor data en analyseert de validiteit van beschermingscookies.
  • Voor FunCaptcha en GeeTest parseert het publieke sleutels en challenge-parameters.
  • Voor Imperva en Shape Security scant het specifieke headers en bijbehorende validatiescripts.

Het hulpprogramma kan gegevens vastleggen van tussenliggende challenge-pagina's voordat de browser de definitieve omleiding naar de doelpagina uitvoert.

Projectarchitectuur en geen build-stap

De broncode is geschreven in puur modern JavaScript zonder bundlers, Webpack of TypeScript. Om het project lokaal uit te voeren, kloon je eenvoudigweg de repository en laad je de map in Chrome via de ontwikkelaarsmodus.

De repository-structuur is verdeeld in duidelijke lagen:

core/
├── manifest.json              # Конфигурация Manifest V3
├── background.js              # Service Worker, сетевой анализ
├── content.js                 # Content script в ISOLATED world
├── content-main-world.js      # JS-хуки в MAIN world
├── detectors/                 # Правила детекции в формате JSON
   ├── antibot/              # Cloudflare, Akamai, DataDome, Imperva
   ├── captcha/              # reCAPTCHA, Turnstile, hCaptcha
   └── fingerprint/          # Canvas, WebGL, Audio, Storage
└── modules/                   # Менеджеры состояния и обработчики

Alle detectie-signaturen en regels zijn uitgepakt naar JSON-bestanden in de detectors/ directory. Je kunt ze direct bewerken in de extensie-interface via de ingebouwde regeleditor, waarbij je je eigen reguliere expressies, controles voor globale window objectvariabelen of aangepaste cookie-signaturen toevoegt.

Voor prestatieoptimalisatie gebruikten de auteurs een LRU-cache voor gecompileerde reguliere expressies, wat het risico op hangs door ReDoS elimineert, en een 12-uur cache van resultaten met vroege afsluiting bij matches met hoge betrouwbaarheid.

Tests zijn geschreven op de ingebouwde node:test runner en vereisen geen externe afhankelijkheden. Je kunt syntaxcontrole en tests uitvoeren met een enkele opdracht:

npm run verify

Voor welke taken dit nuttig zal zijn

Allereerst bespaart de extensie tijd voor crawler-ontwikkelaars en data-analisten. In plaats van handmatig door geminificeerde code en netwerklogs te graven, kun je in een paar seconden precies begrijpen met wie je te maken hebt en welke omgevingssignaturen de pagina controleert.

Het tweede scenario is het auditen van je eigen bescherming. Als je een WAF of anti-bot module in productie configureert, toont de extensie duidelijk of een externe waarnemer je regels kan zien en of challenges correct werken.

Tot slot is dit uitstekend leermateriaal voor iedereen die wil bestuderen hoe Manifest V3 werkt, veilige gegevensoverdracht tussen MAIN- en ISOLATED-contexten, en passieve fingerprinting-methoden. Het project is gelicentieerd onder NPOSL-3.0 en is beschikbaar in de Chrome Web Store.

Gerelateerde projecten