Was sind Honeypot-Fallen und wie wirken sie beim Scraping?

Veröffentlicht:

13 Min. Lesezeit

Acar Diveroli
Autor: Acar Diveroli
Eine Plattform aus Linkkarten mit einer Wabenfalle in der Mitte, zu der ein gestricheltes Kabel von einem Bot führt

Im HTML eines Onlineshops steht ein Link, der auf der Seite nie erscheint: mit display: none versteckt, ohne Text, mit dem Ziel /product/special-offer-7781. Kein Mensch, der die Seite im Browser ansieht, sieht oder klickt diesen Link. Ein Scraper aber, der jedes <a href>-Tag der Seite sammelt und nacheinander besucht, findet und öffnet ihn. In diesem Moment weiß die Website sicher, dass der Besuch nicht von einem Menschen kam. Dieser Link ist eine Honeypot-Falle.

In diesem Artikel erklären wir, was der Begriff Honeypot in der Sicherheit und im Web Scraping bedeutet, wie versteckte Link- und Formularfallen funktionieren, was einem Scraper passiert, der hineintappt, und warum Scraper hineintappen. Der Rahmen ist von Anfang an klar: Ziel ist nicht, Honeypots zu „umgehen", sondern Pfaden nicht zu folgen, die die Website nicht besucht haben will. Ein Crawler, der die Regeln befolgt und seinen Umfang eng hält, bleibt diesen Fallen ohnehin fern; wie, zeigen wir mit einem Playwright-Beispiel.

Was ist ein Honeypot?

Der Begriff „Honeypot" stammt aus der Informationssicherheit. Ein von Sicherheitsteams eingesetzter Honeypot ist ein bewusst eingerichtetes System ohne echte Funktion, das Angreifer anlocken soll: ein scheinbar ungeschützter Server, eine gefälschte Datenbank oder ein nie genutztes Benutzerkonto. Ein legitimer Nutzer hat keinen Grund, auf ein solches System zuzugreifen; jeder Zugriff ist daher verdächtig und liefert Informationen über die Methoden des Angreifers.

Ein Honeypot im Web Scraping überträgt dieselbe Idee auf die Ebene einer Webseite:

MerkmalSicherheits-HoneypotScraping-Honeypot
Wen zielt er an?Angreifer, die in ein Netz eindringen wollenAutomatisierte Crawler und Formular-Bots
FormGefälschter Server, Dienst, KontoVersteckter Link, verstecktes Formularfeld, Fallenseite
ErkennungslogikEin legitimer Nutzer greift nie auf das System zuEin Mensch sieht oder klickt den Link nie
ErgebnisNachverfolgung des Angreifers, AlarmeMarkierung von IP oder Sitzung, Sperre, falsche Daten
Wer richtet ihn ein?SicherheitsteamsWebsitebetreiber, Bot-Management-Dienste

Honeypots gehören zu den Abwehrtechniken gegen automatisierte Angriffe wie Scraping, Kontoerstellung und Spam, die OWASP im Projekt Automated Threats to Web Applications klassifiziert. Die Stärke dieser Abwehr ist, dass sie günstig ist: Eine einzige HTML-Zeile liefert Bot-Erkennung mit hoher Sicherheit.

Wie funktionieren versteckte Linkfallen?

Eine versteckte Linkfalle funktioniert in vier Schritten:

  1. Die Website platziert einen Link auf der Seite und versteckt ihn vor menschlichen Besuchern.
  2. Die Adresse des Links wird nirgends sonst genutzt. Meist ist sie zusätzlich in robots.txt gesperrt, sodass auch regelkonforme Suchmaschinen-Bots nicht dorthin gehen.
  3. Ein Scraper, der jeden Link der Seite sammelt, setzt diese Adresse auf seine Liste und besucht sie.
  4. Die Website protokolliert die Anfrage an diese Adresse und markiert die anfragende IP-Adresse, Sitzung oder den Browser-Fingerprint als Bot.

Verbreitete Arten, den Link zu verstecken:

  • display: none: Das Element nimmt keinen Platz auf der Seite ein.
  • visibility: hidden: Das Element nimmt Platz ein, ist aber unsichtbar.
  • Nullgröße: null Breite und Höhe, kein Text.
  • opacity: 0: vollständig transparent.
  • Außerhalb des Bildschirms positioniert: position: absolute; left: -9999px.
  • Gleiche Farbe wie der Hintergrund: weißer Text auf weißem Hintergrund.
  • Hinter einem anderen Element versteckt: ein mit z-index überdeckter Link.

Weil manche dieser Methoden auch Besucher mit Screenreadern betreffen können, ergänzen sorgfältige Websites Fallenlinks um Attribute wie aria-hidden="true" und tabindex="-1", damit auch Nutzer von Tastatur und assistiven Technologien sie nicht erreichen.

Formular-Honeypots

Ein Formular-Honeypot ist die verbreitetste Technik gegen Spam-Bots. Einem Kontakt-, Kommentar- oder Anmeldeformular wird ein für Menschen unsichtbares Feld hinzugefügt:

html
<form action="/contact" method="post">
  <input type="text" name="name">
  <input type="email" name="email">
  <!-- Menschen sehen dieses Feld nicht; kommt es ausgefüllt an, wird die Übermittlung abgelehnt -->
  <input type="text" name="website" class="hidden" tabindex="-1" autocomplete="off">
  <button type="submit">Senden</button>
</form>

Ein Mensch, der das Formular ausfüllt, sieht das Feld website nicht und lässt es leer. Ein Bot, der jedes Feld der Seite automatisch ausfüllt, schreibt auch dort einen Wert hinein. Kommt das Feld ausgefüllt an, lehnt der Server die Übermittlung stillschweigend ab oder markiert die sendende IP-Adresse.

Manche Formulare ergänzen eine Zeitprüfung: Übermittlungen, die wenige Sekunden nach dem Öffnen der Formularseite eintreffen, gelten als verdächtig, weil ein Mensch das Formular in dieser Zeit nicht lesen und ausfüllen kann.

Für Scraping ist die Folgerung klar: Ein Scraper, der Daten erfasst, hat meist keinen Grund, Formulare auszufüllen. Ein Skript, das Formulare automatisch absendet, verhält sich genau wie ein Spam-Bot.

Fallenseiten und Labyrinthe

Ein Honeypot ist nicht immer ein einzelner Link. Manche Abwehrmaßnahmen erkennen Bots und verschwenden zugleich deren Ressourcen, indem sie sie in endlose Seiten ziehen:

  • Pfade, die endlose Seiten erzeugen: Kalender-, Filter- oder Suchseiten, die bei jedem Besuch neue Links erzeugen. Auch ohne bewusste Falle schicken sie einen Crawler ohne Tiefenlimit in eine Endlosschleife.
  • Erzeugte Inhaltslabyrinthe: Bei der 2025 angekündigten Funktion AI Labyrinth von Cloudflare werden Bots, die Crawling-Verbote ignorieren, auf mit KI erzeugte, verlinkte Seiten geschickt. Laut Ankündigung wirken diese Seiten zugleich als Honeypot der nächsten Generation: Kein Mensch folgt in einem Labyrinth sinnloser Inhalte vier Links in die Tiefe, ein Besucher, der so weit kommt, ist also sehr wahrscheinlich ein Bot.
  • Falsche Daten: Statt echter Preise erhält ein erkannter Bot veränderte Werte, nicht existierende Produkte oder leere Ergebnisse. Der Scraper bekommt keinen Fehler, doch die gesammelten Daten werden unzuverlässig.

Falsche Daten sind die gefährlichste Folge, weil sie schwer zu bemerken sind. Ein Scraper kann monatelang laufen und Berichte mit falschen Preisen liefern.

Was passiert, wenn Sie in einen Honeypot tappen?

Eine Anfrage an die Fallenadresse wertet das Bot-Management der Website als starkes Signal. Was folgt, variiert je Website:

  • Die IP-Adresse wird gesperrt: Jede Anfrage von derselben Adresse erhält nun 403.
  • Die Sitzung wird markiert: Cookie oder Sitzungstoken werden als Bot gekennzeichnet; die Sitzung wird auch bei IP-Wechsel erkannt.
  • Der Fingerprint wird gespeichert: Browser- oder Client-Merkmale werden festgehalten, und derselbe Fingerprint gilt auch von anderen IPs als verdächtig. Wie Fingerprints entstehen, erklären wir in Browser-Fingerprinting.
  • Prüfbildschirme: Bei späteren Anfragen werden Prüfseiten angezeigt.
  • Falsche Daten oder leere Antworten: Der Scraper läuft weiter, erfasst aber falsche Daten.
  • Geteilte Reputationslisten: Bot-Management-Dienste können auf einer Website erkannte Quellen auch auf den Websites anderer Kunden berücksichtigen.

Manche dieser Folgen können nicht nur den Scraper, sondern auch andere Nutzer derselben IP-Adresse treffen. Das sollten Sie bei geteilten IP-Adressen bedenken.

Warum tappt Ihr Scraper hinein?

Honeypots zielen auf ein bestimmtes Verhalten, und dieses Verhalten entsteht meist aus einem Designfehler:

  • Logik „jedem Link folgen". Jedes <a href>-Tag der Seite in die Warteschlange stellen, ohne zu prüfen, ob es sichtbar ist.
  • Crawlen ohne Umfangsgrenze. In jeden Pfad der Website gehen, obwohl nur Produktseiten gebraucht werden.
  • robots.txt nicht lesen. Fallenadressen sind oft in robots.txt gesperrt; ein Crawler, der die Datei befolgt, geht nie dorthin.
  • rel="nofollow"-Links folgen. Links, die die Website ausdrücklich als nicht zu verfolgen markiert hat.
  • Keine Tiefen- oder Seitenlimits. Der Crawler stoppt auf Pfaden mit endlosen Seiten nicht.
  • Formulare automatisch ausfüllen. Werte in jedes Feld schreiben, versteckte eingeschlossen.
  • Dieselbe Adresse mit verschiedenen Parametern immer wieder besuchen. Tausende Adressen aus Filter- und Sortierkombinationen.

Wie bleibt ein legitimer Crawler Honeypots fern?

Die folgenden Regeln sollen Honeypots nicht „umgehen"; sie sorgen dafür, dass Sie keinen Pfaden folgen, die die Website nicht will. Einen Crawler so zu gestalten, bringt das Meiden von Fallen als Nebeneffekt mit.

  1. Befolgen Sie robots.txt. Lesen Sie die Datei der Website vor dem Crawlen und stellen Sie gesperrte Pfade nicht in die Warteschlange. Wie Sie sie lesen, erklären wir in Was ist robots.txt und wie liest man die Datei?.
  2. Begrenzen Sie den Umfang mit URL-Mustern. Brauchen Sie nur Produktdaten, folgen Sie nur Adressen, die mit /product/ beginnen.
  3. Nutzen Sie nach Möglichkeit die Sitemap statt Links zu sammeln. sitemap.xml listet die Adressen, die die Website gecrawlt haben will.
  4. Folgen Sie sichtbaren Links. Nutzen Sie einen Browser, stellen Sie Links, die der Nutzer nicht sehen kann, nicht in die Warteschlange.
  5. Überspringen Sie rel="nofollow"-Links.
  6. Setzen Sie Tiefen-, Seiten- und Wiederholungslimits. Normalisieren Sie Parametervarianten desselben Pfads.
  7. Senden Sie keine Formulare ab, um Daten zu erfassen. Ist das Absenden wirklich nötig (etwa die Anmeldung im eigenen Konto), füllen Sie nur die Felder aus, die Sie kennen.
  8. Begrenzen Sie Ihre Geschwindigkeit. Fallen fangen vor allem Bots, die schnell und breit crawlen.

In der Browserautomatisierung kann eine Prüfung auf „sichtbare Links" so aussehen:

python
from urllib.parse import urljoin, urlsplit

from playwright.sync_api import sync_playwright


def visible_links(page, base, allowed_prefix="/product/"):
    addresses = set()
    for link in page.locator("a[href]").all():
        href = link.get_attribute("href")
        rel = (link.get_attribute("rel") or "").lower()
        if not href or "nofollow" in rel or not link.is_visible():
            continue
        url = urljoin(base, href)
        parts = urlsplit(url)
        if parts.netloc != urlsplit(base).netloc or not parts.path.startswith(allowed_prefix):
            continue
        addresses.add(url)
    return sorted(addresses)


with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://example.com/deals")
    for address in visible_links(page, "https://example.com"):
        print(address)   # vor dem Einreihen auch robots.txt prüfen
    browser.close()

Diese Funktion wendet vier Filter an: Sie überspringt nofollow-Links, nicht sichtbare Links und Links zu anderen Domains und nimmt nur solche, die zum erlaubten Adresspräfix passen.

Die Grenzen der Sichtbarkeitsprüfung müssen Sie kennen. Das is_visible() von Playwright behandelt Elemente mit display: none, visibility: hidden und Nullgröße als nicht sichtbar. Mit Methoden wie opacity: 0, Positionierung außerhalb des Bildschirms oder derselben Farbe wie der Hintergrund versteckte Elemente können die Prüfung aber als sichtbar passieren. Die Sichtbarkeitsprüfung allein ist also keine Garantie; der eigentliche Schutz ist, robots.txt zu befolgen und das Crawlen auf die benötigten URL-Muster zu begrenzen. Fast jeder Fallenlink liegt außerhalb dieser beiden Regeln.

Ein Scraper, der ohne Browser mit einem HTTP-Client arbeitet, kann Sichtbarkeit nicht direkt messen; für ihn zählen URL-Muster, robots.txt und Sitemap-Regeln umso mehr.

Arten von Honeypots

ArtWie sie funktioniertWen fängt sie?Wie bleibt ein legitimer Crawler fern?
Per CSS versteckter LinkEin für Menschen unsichtbarer Link, oft in robots.txt gesperrtBots, die jedem Link folgenrobots.txt, URL-Muster, Sichtbarkeitsprüfung
Verstecktes FormularfeldAbgelehnt, wenn ein leer zu lassendes Feld ausgefüllt ankommtFormular-Bots, die jedes Feld ausfüllenBeim Datenerfassen keine Formulare absenden
ZeitprüfungZu schnell abgesendete Formulare gelten als verdächtigBots, die sofort absendenKeine Formulare absenden
Pfad mit endlosen SeitenSeiten, die bei jedem Besuch neue Links erzeugenCrawler ohne TiefenlimitTiefen- und Seitenlimits, Parameternormalisierung
Erzeugtes InhaltslabyrinthErzeugte Seiten für Bots, die Crawling-Verbote ignorierenBots, die robots.txt nicht befolgenrobots.txt befolgen
Falsche DatenVeränderte Inhalte für erkannte BotsMarkierte IPs oder SitzungenNicht markiert werden; Daten stichprobenartig prüfen

Anwendungsfälle

  • Ein großer Crawler: ein robots.txt-Cache pro Website, eine Positivliste von URL-Mustern, ein Tiefenlimit und Erkundung zuerst über die Sitemap. Die Skalierung beschreibt unsere Seite zur Web-Crawler-Lösung.
  • Crawling für Markenschutz: Crawls zur Erkennung von Websites mit gefälschten Produkten bleiben auf die relevanten Produktseiten beschränkt; regelkonformes Verhalten ist nötig, um Beweise zu sammeln, ohne die Abwehr der gecrawlten Website auszulösen. Den Aufbau beschreibt unsere Seite zum Markenschutz.
  • Bot-Erkennung als Websitebetreiber: Ein Formular-Honeypot auf Ihrer eigenen Website und ein in robots.txt gesperrter Fallenlink sind günstige Wege, bösartige Automatisierung früh zu erkennen. Die Datenschutzseite beschreibt unsere Seite zur Datensicherheit.
  • Datenqualitätsprüfungen: Eine Stichprobe der erfassten Preise regelmäßig von Hand im Browser zu prüfen, zeigt, ob falsche Daten geliefert werden.

Häufige Fehler

  • Einen Honeypot als technisches Hindernis betrachten, das es zu umgehen gilt. Eine Falle ist ein Zeichen der ausdrücklichen Präferenz der Website; das eigentliche Problem ist Crawlen ohne Umfangsgrenze.
  • Sich allein auf die Sichtbarkeitsprüfung verlassen. Transparente oder außerhalb des Bildschirms liegende Elemente können sie passieren.
  • robots.txt nur einmal zu Beginn lesen. Bei langen Crawls kann sich die Datei ändern; aktualisieren Sie sie pro Website in Abständen.
  • Falsche Daten nicht einplanen. Keine Fehler zu bekommen, heißt nicht, korrekte Daten zu bekommen.
  • Formulare „sicherheitshalber" absenden. Datenerfassung braucht fast nie Formularübermittlungen.
  • Parametervarianten als eigene Adressen zählen. Filterseiten mit endlosen Kombinationen ziehen den Crawler in eine Falle.

Die übrigen Fehler bei Geschwindigkeit, Headern und IPs sammeln wir in Web Scraping ohne Sperren.

Entscheidungshilfe

Ihre SituationEmpfehlung
Nur bestimmte Seitentypen werden gebrauchtPositivliste von URL-Mustern, Sitemap
Sie crawlen breitrobots.txt, Tiefenlimit, Parameternormalisierung
Sie nutzen BrowserautomatisierungSichtbare Links ohne nofollow + robots.txt
Sie nutzen einen HTTP-ClientURL-Muster und robots.txt (Sichtbarkeit nicht messbar)
Ein Formular muss ausgefüllt werdenNur bekannte Felder; keine Formulare zur Datenerfassung absenden
Sie zweifeln an der Richtigkeit der DatenStichprobe nehmen und von Hand im Browser prüfen
Sie wollen Ihre eigene Website schützenFormular-Honeypot + in robots.txt gesperrter Fallenlink

Häufig gestellte Fragen

Dürfen Websites Honeypots einsetzen?

In der Regel ja; einen für Besucher unsichtbaren Link oder ein unsichtbares Feld auf der eigenen Seite zu platzieren, ist eine Abwehrtechnik. Inhalte von Fallen sollten aber nicht irreführend sein oder die Barrierefreiheit beeinträchtigen, und dabei erfasste personenbezogene Daten unterliegen den einschlägigen Gesetzen.

Woran erkennt mein Scraper, dass er in einen Honeypot getappt ist?

Direkt erkennt er es nicht; die Fallenadresse kann wie eine normale Seite antworten. Die Anzeichen sind indirekt: kurz darauf einsetzende 403-Antworten, Prüfbildschirme, Daten, die sich plötzlich ändern oder widersprüchlich werden. Prüfen Sie Ihre Crawl-Protokolle auf Anfragen an in robots.txt gesperrte oder unerwartete Adressen.

Hebt ein IP-Wechsel eine Sperre nach einem Honeypot auf?

Ist die Sperre nur an die IP gebunden, kann das vorübergehend helfen, ändert aber nichts am Crawling-Verhalten, das das Problem verursacht hat. Beruht die Markierung auf Sitzung oder Fingerprint, hilft es gar nicht. Die richtige Lösung ist, Umfang und Regeltreue des Crawlers zu korrigieren.

Warum tappen Suchmaschinen-Bots nicht in Honeypots?

Legitime Suchmaschinen-Bots befolgen robots.txt und beachten Signale wie nofollow. Websitebetreiber sperren Fallenadressen meist in robots.txt, daher gehen diese Bots nie dorthin. Dieselbe Logik gilt für jeden Crawler, der die Regeln befolgt.

Was ist der Unterschied zwischen Honeypot und CAPTCHA?

Ein CAPTCHA fordert vom Besucher ausdrücklich eine Überprüfung und betrifft auch menschliche Nutzer. Ein Honeypot ist unsichtbar; menschliche Nutzer bemerken nichts, und nur wer ein bestimmtes automatisiertes Verhalten zeigt, tappt in die Falle.

Sollte ich meiner eigenen Website einen Honeypot hinzufügen?

Die Technik des versteckten Feldes in Kontakt- und Kommentarformularen ist ein günstiger Weg, Spam zu verringern, und beeinträchtigt die Nutzererfahrung nicht. Vergessen Sie bei versteckten Linkfallen nicht, die Fallenadresse in robots.txt zu sperren; sonst markieren Sie womöglich versehentlich regelkonforme Suchmaschinen-Bots.

Fazit

Ein Honeypot ist eine Falle, die menschliche Besucher nicht sehen, in der sich aber Bots verfangen, die jeden Link und jedes Formularfeld automatisch verarbeiten: per CSS versteckte Links, Formularfelder, die leer bleiben sollen, endlose Seiten und erzeugte Inhaltslabyrinthe. Ein Scraper, der in die Falle tappt, wird gesperrt, stößt auf Prüfbildschirme oder erfasst unbemerkt falsche Daten. Schutz vor Honeypots bietet nicht der Versuch, sie zu umgehen, sondern ein Crawler, der robots.txt befolgt, nur den benötigten URL-Mustern folgt, Tiefenlimits hat und keine Formulare absendet. Für regelkonforme Datenerfassung sehen Sie sich unsere Proxy-Dienste an.

ChatGPT fragenClaude fragen