>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
JavaScript

So finden Sie heraus, welcher Schutz auf einer Website aktiv ist und was sie über Sie sammelt

Scrapfly Anti-bot Detector banner

Jeder, der jemals einen Parser geschrieben oder End-to-End-Tests auf echten Websites eingerichtet hat, kennt die Situation, in der das Skript plötzlich einen 403-Status oder eine endlose Weiterleitung zu einer leeren Seite erhält. Sie sitzen in den DevTools, wechseln zwischen den Tabs Netzwerk und Anwendung und versuchen zu raten: Hat Cloudflare die Anfrage blockiert, hat DataDome eine unsichtbare Checkliste eingeschleust, oder hat das Seiten-Skript still und heimlich einen Canvas- und WebGL-Fingerabdruck genommen?

Das Scrapfly-Team hat eine Open-Source Chrome-Erweiterung namens Scrapfly Anti-bot Detector veröffentlicht. Dies ist ein Tool für Sicherheitsforscher, Pentester und Parser-Entwickler, das Seiten in Echtzeit analysiert und anzeigt, welche Schutzsysteme aktiv sind und welche Fingerprinting-Techniken gerade ausgelöst werden.

Detection overview

Was die Erweiterung erkennen kann

Die Erweiterung läuft auf Manifest V3 und sendet keine Daten an externe Server. Alle Analysen finden lokal im Browser statt.

Sie klassifiziert erkannte Schutzmechanismen in drei Kategorien:

  • Bot-Schutzsysteme. Erkennt Cloudflare, Akamai, DataDome, PerimeterX, Imperva, Kasada, Shape Security und AWS WAF.
  • CAPTCHAs. Findet reCAPTCHA, hCaptcha, FunCaptcha, GeeTest und Cloudflare Turnstile.
  • Digitale Fingerprinting-Techniken. Verfolgt 21 Fingerprinting-Methoden, einschließlich Canvas, WebGL, AudioContext, Fonts, WebRTC, Performance API, Navigator-Eigenschaften und Storage.

| Erkennung | Verlauf | Regeln-Editor | |---|---|---| | Detection | History | Rules |

Wie die mehrstufige Erkennung funktioniert

Anti-Bot-Systeme reveal themselves rarely with an explicit response header. Usually they spread their logic across scripts, cookies, and global objects. Die Erweiterung nutzt fünf Analyseebenen gleichzeitig.

Zuerst inspiziert sie das DOM. Die Erweiterung sucht nach charakteristischen Markup-Elementen, Klassennamen und verbundenen externen Skripten.

Parallel dazu überwacht der Service Worker Netzwerkanfragen, filtert Header, Cookies, Anfrage-URLs und die Body der gesendeten Payloads.

Der interessanteste Teil liegt im Abfangen von Browser-API-Aufrufen. Bevor die Seiten-Skripte mit der Ausführung beginnen (im Stadium document_start), injiziert die Erweiterung Hooks in den Hauptkontext der Seite (MAIN world). Wenn ein Schutzskript versucht, ein verstecktes Element auf einer Canvas zu zeichnen oder Audio-Kontext-Parameter anzufordern, zeichnet der Hook den Aufruf auf, sammelt die Aufrufparameter und leitet sie über eine isolierte Bridge an das Detektor-Modul weiter.

Hooks bleiben nicht unbegrenzt aktiv: Sie werden automatisch entladen, entweder nach zwei Sekunden Inaktivität oder 8 Sekunden nach dem Seitenstart.

| Datenextraktions-Tools | Einstellungen | |---|---|---| | Advanced Tools | Settings |

Integrierte Tools für tiefe Analyse

Über eine einfache Liste erkannter Anbieter hinaus enthält die Erweiterung einen Abschnitt für erweiterte Tools. Er löst ein praktisches Problem: die Extraktion der für das Debugging von Automation benötigten Parameter.

  • Für reCAPTCHA, hCaptcha und Turnstile findet das Modul den SiteKey, Container-Selektoren und registrierte JS-Callbacks.
  • Für Akamai und DataDome fängt das Utility generierte Sensordaten ab und analysiert die Gültigkeit von Schutz-Cookies.
  • Für FunCaptcha und GeeTest parst es öffentliche Schlüssel und Challenge-Parameter.
  • Für Imperva und Shape Security scannt es spezifische Header und zugehörige Validierungsskripte.

Das Tool kann Daten von Zwischen-Challenge-Seiten erfassen, bevor der Browser die endgültige Weiterleitung zur Zielseite durchführt.

Projektarchitektur und kein Build-Schritt

Der Quellcode ist in reinem modernen JavaScript ohne Bundler, Webpack oder TypeScript geschrieben. Um das Projekt lokal auszuführen, klonen Sie einfach das Repository und laden Sie den Ordner über den Entwicklermodus in Chrome.

Die Repository-Struktur ist in klare Schichten unterteilt:

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 Erkennungssignaturen und Regeln sind in JSON-Dateien im Verzeichnis detectors/ extrahiert. Sie können sie direkt in der Erweiterungsoberfläche über den integrierten Regeln-Editor bearbeiten und Ihre eigenen regulären Ausdrücke, Prüfungen für globale window-Objektvariablen oder benutzerdefinierte Cookie-Signaturen hinzufügen.

Für die Leistungsoptimierung verwendeten die Autoren einen LRU-Cache für kompilierte reguläre Ausdrücke, was das Risiko von Hängern durch ReDoS eliminiert, sowie einen 12-Stunden-Cache für Ergebnisse mit frühem Abbruch bei Treffern mit hoher Konfidenz.

Tests sind auf dem integrierten node:test-Runner geschrieben und erfordern keine externen Abhängigkeiten. Sie können die Syntaxprüfung und Tests mit einem einzigen Befehl ausführen:

npm run verify

Welche Aufgaben damit unterstützt werden

Vor allem spart die Erweiterung Zeit für Crawler-Entwickler und Datenanalysten. Anstatt manuell durch minimierten Code und Netzwerk-Logs zu wühlen, können Sie in wenigen Sekunden genau verstehen, mit wem Sie es zu tun haben und welche Umgebungssignaturen die Seite prüft.

Das zweite Szenario ist das Auditieren Ihres eigenen Schutzes. Wenn Sie einen WAF oder ein Anti-Bot-Modul in der Produktion konfigurieren, zeigt die Erweiterung klar, ob ein externer Beobachter Ihre Regeln sehen kann und ob Challenges korrekt funktionieren.

Schließlich ist dies exzellentes Lernmaterial für jeden, der verstehen möchte, wie Manifest V3 funktioniert, sichere Datenübertragung zwischen MAIN- und ISOLATED-Kontexten sowie passive Fingerprinting-Methoden. Das Projekt ist unter NPOSL-3.0 lizenziert und im Chrome Web Store verfügbar.

Ähnliche Projekte