Die neue EU-Regelung rund um den Widerrufsbutton hat ein gutes Ziel: Verbraucher sollen online geschlossene Verträge so einfach widerrufen können, wie sie sie abgeschlossen haben. In der Praxis bedeutet das oft: Formular ausfüllen, absenden, fertig.
Und genau da beginnt das Problem.
Wo liegt das Risiko?
Der Widerrufsbutton soll auch ohne Benutzerkonto nutzbar sein. Das ist aus Nutzersicht komfortabel – aus Security-Sicht aber ein Einfallstor, wenn die Identifizierung zu „leicht“ wird.
Ein typischer Minimal-Flow sieht so aus:
- Name
- E-Mail
- Buchungsnummer / Bestellnummer (als Vertrags-Identifizierung)
Klingt harmlos. Wird aber gefährlich, wenn zwei Dinge zusammenkommen:
- E-Mail-Adressen sind nicht geheim.
Sie stehen in Newsletter-Listen, tauchen in Leaks auf oder lassen sich erraten. - Bestellnummern sind oft vorhersehbar.
Viele Shops nutzen sequentielle Nummern (mit oder ohne Prefix). Das lädt zu automatisiertem Raten ein.
Ein realistisches Szenario
Stell dir vor, jemand hat eine Liste potenzieller Kunden deines Shops – Name + E-Mail. Solche Listen sind nicht „einfach“, aber leider auch nicht selten (Leaks, Datenhandel, kompromittierte Postfächer, etc.).
Ab diesem Moment bleibt als einziges „Geheimnis“ oft nur noch die Buchungsnummer.
Und wenn die fortlaufend ist, wird daraus ein klassischer Angriff:
E-Mail + Bestellnummern durchprobieren, bis Treffer dabei sind.
Das Ergebnis muss nicht „Massenstorno“ sein, um weh zu tun. Ein erfolgreicher Widerruf kann reichen:
- ein Abo wird widerrufen und muss mühsam reaktiviert werden
- Support-Tickets explodieren („ich war das nicht“)
- interne Prozesse laufen an (Storno, Rückabwicklung, Lager/Versand)
- im schlimmsten Fall entsteht direkter finanzieller Schaden
Kurz: Ein Verbraucherrecht wird zur operativen Angriffsfläche.
Warum ist das so schwer zu lösen?
Weil der Spielraum klein ist.
- Login-Pflicht fällt als Standardmaßnahme weg.
- Eine zusätzliche Bestätigung (z. B. per E-Mail-Link) klingt naheliegend, kann aber als zusätzliche Hürde wahrgenommen werden – und genau das will der Gesetzgeber eigentlich vermeiden.
Das heißt: Du brauchst Schutzmaßnahmen, die nicht wie ein neues Hindernis wirken.
Was du tun kannst: drei Schutzmaßnahmen, die zusammen Sinn ergeben
1) Plausibilitätschecks im Formular (ohne „Mehrfelder-Orgie“)
Das Formular bleibt schlank – aber du prüfst im Hintergrund, ob die Angaben zusammenpassen.
- Passt die E-Mail zur Buchungsnummer und Name?
- Gibt es zu viele Fehlversuche in kurzer Zeit?
- Kommen auffällig viele Versuche aus derselben Quelle?
Wichtig: Keine Detail-Fehlermeldungen, die Angreifern helfen (z. B. „E-Mail stimmt nicht“ vs. „Bestellung existiert nicht“). Neutral bleiben.
2) Buchungsnummern „nicht erratbar“ machen
Wenn du keinen Token versenden darfst, ist das der stärkste Hebel:
Mach die Vertrags-Identifizierung selbst so, dass sie nicht bruteforcbar ist.
Statt rein fortlaufender Nummern:
- Alt: #0001, #0002, #0003
- Neu (Beispiel): #XDTC-0001, #DTFR-0002, #K9QJ-0003
Der Punkt ist nicht „schöner“, sondern unkalkulierbar.
Wichtiges Achtung-Schild:
Wenn deine „Bestellnummer“ gleichzeitig als Rechnungsnummer oder steuerlicher Beleganker genutzt wird, solltest du das sauber trennen oder vorab mit Buchhaltung/Steuerberatung klären. Für die meisten Shops ist das lösbar – aber es ist kein Thema, das man „nebenbei“ anfassen sollte.
3) CAPTCHA / Turnstile als zusätzlicher Riegel – mit offenen Augen
CAPTCHA-Lösungen (z. B. Turnstile) können Brute-Force-Wellen deutlich bremsen. Aber sie kommen mit zwei echten Unsicherheiten:
- DSGVO/Datenschutz: externe Dienstleister, Datenflüsse, ggf. Drittlandthemen, Dokumentationspflichten
- Barrierefreiheit & Nutzerführung: wenn Nutzer erst „zustimmen“ müssen oder das CAPTCHA nicht funktioniert, wird aus „leicht zugänglich“ schnell „frustrierend“
Darum ist ein guter Grundsatz:
- nicht „CAPTCHA für alle, immer“
- sondern risikobasiert (z. B. erst bei auffälligem Verhalten oder nach mehreren Fehlversuchen)
So bekommst du Schutz, ohne den Button für echte Kunden unnötig kaputt zu machen.
Fazit: Der Widerrufsbutton braucht "Security by Design"
Der Widerrufsbutton soll Widerruf einfacher machen. Das ist politisch gewollt – und grundsätzlich richtig.
Aber: In einem Shop ohne Konto-Pflicht ist „einfach“ gleichzeitig „angreifbar“, wenn Identifizierung über öffentlich bekannte Daten + erratbare Nummern läuft.
Die pragmatische Antwort ist ein Maßnahmen-Bundle:
- Formular schlank lassen, aber plausibel prüfen
- Buchungsnummern nicht erratbar machen
- CAPTCHA/Turnstile gezielt einsetzen – und Datenschutz/Barrierefreiheit ernst nehmen
So bleibt der Prozess für Kunden einfach – und für Angreifer unerquicklich.
Ich möchte mehr zu Euch erfahren!
Wir beraten, implementieren, erweitern und begleiten. Meldet Euch gerne.
Same-day appointments available. Quality guaranteed.
