Kurz und einfach erklärt
Ein Rabattcode ist wie ein kleines Geheimnis mit Geldwert. Wer ihn nicht kennt, kann versuchen, ihn zu raten. Programme können sehr viele Codes ausprobieren.
In Wochen mit großen Rabattaktionen ist das besonders heikel. Dann sind viele Codes im Umlauf.
Der Beitrag zeigt, was hilft. Codes sollten schwer zu raten sein. Das Feld für Gutscheine bremst zu viele Versuche. Viele falsche Versuche lösen einen Alarm aus.
Wir werten die Versuche am Feld für Gutscheine in Ihrem Shop aus. Vor einer großen Aktion stellen wir den Alarm strenger ein.
Ein Rabattcode ist ein kleines Geheimnis mit Geldwert. Wer ihn kennt, bekommt einen Nachlass – und wer ihn nicht kennt, kann ihn raten, sofern der Shop das Raten zulässt. Das OWASP-Projekt zu automatisierten Bedrohungen führt genau dieses Muster als eigene Bedrohung OAT-002 Token Cracking: das massenhafte Durchprobieren von Gutscheinnummern, Rabattcodes und ähnlichen Kennungen (OWASP Automated Threats). In der Black Week trifft diese Bedrohung auf den Zeitraum, in dem die meisten Codes gleichzeitig gültig sind. Für Black Friday und Cyber Monday 2025 rechnete der Handelsverband Deutschland mit 5,8 Milliarden Euro Umsatz (HDE), und 52 Prozent der Internetnutzenden ab 16 Jahren wollten die reduzierten Preise nutzen (Bitkom). Black Friday fällt 2026 auf den 27. November. Ab Mitte Oktober bleiben damit gut sechs Wochen, um Codelänge, Rate-Limit, Alarmierung und Aktionsende so einzurichten, dass ein Bot am Gutscheinfeld auffällt, bevor er Marge abschöpft. Dieser Beitrag zeigt die Rechnung hinter sicheren Codes, die Stellen, an denen Shops typischerweise nachrüsten müssen, und einen Fahrplan bis zur Aktionswoche.
Das Wichtigste in Kürze
- OWASP führt das massenhafte Durchprobieren von Gutschein- und Rabattcodes als eigene Bedrohung OAT-002 (OWASP Automated Threats). Je mehr gültige Codes im Umlauf sind, desto schneller trifft ein Bot einen davon.
- Das Beispielmuster der Shopware-Dokumentation mit 3 Zufallsbuchstaben und 2 Zufallsziffern ergibt 1.757.600 Codes; bei 10.000 ausgegebenen trifft rechnerisch jeder 176. Rateversuch (eigene Rechnung nach Shopware-Dokumentation).
- Das Gutscheinfeld braucht ein eigenes Rate-Limit je Warenkorb, Kundenkonto und IP-Netz. Der Standard-Limiter für Warenkorbpositionen zählt über die Store-API je Code und IP-Adresse, am Gutscheinfeld der Storefront gar nicht (Shopware-Quelltext).
- Fehlversuche am Gutscheinfeld gehören als eigene Kennzahl ins Monitoring: Schwelle aus dem Verlauf der Vorwochen, engere Einstellung und verstärkte Bereitschaft für die Woche um den Black Friday am 27. November 2026.
- Neukundenrabatte hängen in Shopware am Kundenkonto, nicht an der Person (Shopware-Dokumentation). Normalisierte E-Mail-Adresse, Anschrift und Zahlungsweg zeigen Mehrfachkonten, ohne echte Neukunden auszusperren.
- Individuelle Codes sind nur einmal einlösbar (Shopware-Dokumentation). Feste Codes brauchen Gesamt- und Kundengrenzen; zum Aktionsende werden Gültigkeit, Deaktivierung und Einlösungen geprüft.
Warum Rabattcodes ein eigenes Angriffsziel sind
Ein Gutscheincode funktioniert wie ein Passwort ohne Benutzernamen. Er schaltet einen Vorteil frei, der sich in Geld umrechnen lässt, und der Shop prüft bei jeder Eingabe, ob er gültig ist. Für Login-Geheimnisse begrenzt NIST aufeinanderfolgende Fehlversuche je Konto auf höchstens 100 und sperrt das Zugangsmerkmal danach (NIST SP 800-63B). Am Gutscheinfeld fehlt dieses Konto: Es gibt nichts, das nach zu vielen Fehlversuchen gesperrt wird, und keinen Besitzer, der eine Warnmail bekommt. Wer dort rät, stört zunächst niemanden, und die Antwort des Shops verrät bei jedem Versuch, ob er richtig lag.
Mass enumeration of coupon numbers, voucher codes, discount tokens, etc.
Das OWASP-Projekt ordnet diesem Muster die Schwächen CWE-799 und CWE-837 zu (OWASP Automated Threats). Die erste beschreibt eine Anwendung, die Zahl oder Häufigkeit der Interaktionen mit einem Akteur nicht ausreichend begrenzt (MITRE CWE). Die zweite beschreibt eine Anwendung, die eine nur einmal zulässige Aktion nicht oder unzureichend durchsetzt (MITRE CWE). Beides trifft auf Gutscheine zu: Gegen das Raten hilft eine Frequenzbremse, gegen die Mehrfacheinlösung eine harte Einmalprüfung.
Der Angriffskatalog CAPEC beschreibt den Kern der Rechnung im Eintrag CAPEC-112: Entscheidend ist, wie schnell ein Angreifer den Raum möglicher Geheimnisse absuchen kann (MITRE CAPEC). Der Verteidiger muss dafür sorgen, dass Zeit und Aufwand dafür den Wert des Erbeuteten übersteigen (MITRE CAPEC). Für Rabattcodes heißt das: Der Zeichenraum muss groß genug sein, die Versuche müssen gebremst werden, und der Shop muss es bemerken, wenn trotzdem jemand sucht. In der Black Week wiegen diese drei Punkte schwerer als sonst. Viele Aktionen laufen parallel, Codes werden über Newsletter, Partner und soziale Kanäle verteilt, und ein auffälliger Verlauf geht im allgemeinen Lastanstieg leicht unter.
Vier Muster des Codemissbrauchs
Im Aktionszeitraum begegnen Shops vier Formen von Codemissbrauch. Sie unterscheiden sich in der Technik, haben aber eines gemeinsam: Jede einzelne Bestellung sieht für sich unauffällig aus. Sichtbar werden sie erst in der Summe, also in Zählern und Verläufen.
Durchprobieren
Ein Skript sendet Codes nach einem erkannten Muster an das Gutscheinfeld oder an die Warenkorb-Schnittstelle. Ziel sind gültige Einzelcodes aus großen Serien, etwa aus Newsletter- oder Partneraktionen.
Mehrfacheinlösung
Ein Code, der nur einmal gelten soll, wird mehrfach verrechnet: über mehrere Warenkörbe, parallele Anfragen oder einen Rücksprung im Checkout. Die Ursache liegt in der Prüflogik, nicht im Code.
Mehrfachkonten
Ein Neukundenrabatt wird über viele frisch angelegte Konten abgeholt. Jedes Konto ist formal neu, dahinter stehen dieselbe Person, dieselbe Anschrift oder dasselbe Skript.
Durchgesickerte Codes
Ein Code für eine geschlossene Zielgruppe taucht auf Gutscheinportalen oder in Foren auf und wird von allen eingelöst. Technisch ist das kein Angriff, wirtschaftlich wirkt es wie einer.
Die Abgrenzung zu verwandten Angriffen hilft, Alarme richtig zuzuordnen. Beim Card-Testing am Checkout prüfen Bots Kartendaten, nicht Codes; beim Account-Takeover geht es um fremde Kundenkonten. Die Werkzeuge ähneln sich, die Kennzahlen nicht: Für Codemissbrauch zählt, wie oft das Gutscheinfeld mit ungültigen Werten aufgerufen wird und wie sich eingelöste Codes über Konten, Anschriften und Herkunft verteilen.
Codelänge und Zeichenraum: die Rechnung vor der Aktion
Wie viel Schutz ein Code aus sich selbst heraus bietet, lässt sich vor der Aktion ausrechnen. Shopware erzeugt individuelle Aktionscodes wahlweise mit fester Länge oder nach einem eigenen Muster, in dem %s für einen zufälligen Buchstaben von A bis Z und %d für eine zufällige Ziffer von 0 bis 9 steht (Shopware-Dokumentation). Das Beispielmuster der Dokumentation, SW-%s%d%s%d%s-TEST, enthält fünf Zufallsstellen: drei Buchstaben und zwei Ziffern. Das ergibt 1.757.600 mögliche Codes (eigene Rechnung nach Shopware-Dokumentation).
Entscheidend ist eine zweite Größe: wie viele davon gültig sind. Ein Angreifer sucht nicht einen bestimmten Code, sondern irgendeinen der ausgegebenen. Bei 10.000 Codes einer Newsletter-Aktion ist im Mittel jeder 176. zufällige Versuch ein Treffer (eigene Rechnung nach Shopware-Dokumentation). Die Tabelle zeigt, wie sich das mit der Länge verschiebt – als eigene Rechnung mit 10.000 gültigen Codes und angenommenen 1.000 Versuchen je Sekunde ohne Bremse.
| Codeaufbau | Mögliche Codes | Versuche je Treffer bei 10.000 gültigen Codes | Zeit bis zum Treffer bei 1.000 Versuchen je Sekunde |
|---|---|---|---|
| Beispielmuster SW-%s%d%s%d%s-TEST: 3 Buchstaben, 2 Ziffern (Shopware-Dokumentation) | 1.757.600 | rund 176 | unter 1 Sekunde |
| 8 Zeichen aus einem Satz von 32 | rund 1,1 Billionen | rund 110 Millionen | rund 31 Stunden |
| 10 Zeichen aus einem Satz von 32 | rund 1,1 Billiarden | rund 113 Milliarden | rund 3,6 Jahre |
| 12 Zeichen aus einem Satz von 32 | rund 1,2 Trillionen | rund 115 Billionen | rund 3.650 Jahre |
Zwei Folgerungen ergeben sich daraus. Erstens darf aus einem kurzen Muster keine Serie mit tausenden Codes werden, ohne dass Zufallsstellen hinzukommen: Jeder zusätzlich ausgegebene Code macht das Raten leichter. Zweitens ersetzen auch zwölf Zeichen die Bremse nicht. Ein Code aus 12 Zeichen eines 32-Zeichen-Satzes trägt 60 Bit Zufall. Für Einmalcodes aus OTP-Generatoren, etwa Authentifizierungs-Apps, verlangt NIST unterhalb von 64 Bit ein Rate-Limit für Fehlversuche (NIST SP 800-63B). Ein Gutscheincode ist kein Login, die Logik dahinter passt trotzdem – zumal die Zahl der Versuche je Sekunde der Angreifer bestimmt, nicht der Shop.
Zeichensatz ohne Verwechsler
Ein Rate-Limit direkt am Gutscheinfeld
Shopware bringt seit Version 6.4.6.0 Rate-Limits mit, die laut Entwicklerdokumentation das Risiko von Brute-Force-Angriffen auf Seiten wie Login oder Passwort-Reset senken (Shopware-Entwicklerdokumentation). Der Kundenlogin ist gestuft begrenzt: 10 Anfragen in 10 Sekunden, 15 in 30 Sekunden und 20 in 60 Sekunden (Shopware-Entwicklerdokumentation). Ein eigener Eintrag für Aktionscodes steht in der Liste der Standard-Limiter nicht.
Am nächsten kommt der Limiter für Warenkorbpositionen, denn ein Aktionscode wird im Warenkorb als Position geführt. Bei Anfragen über die Store-API setzt sich sein Zählschlüssel aus der Kennung der Position und der IP-Adresse zusammen, und bei einem Aktionscode ist diese Kennung der eingegebene Code selbst (Shopware-Quelltext). Wer jeden Versuch mit einem anderen Code unternimmt, beginnt damit jedes Mal bei einem frischen Zähler. Über das Gutscheinfeld der Storefront zählt er gar nicht: Der Warenkorbdienst reicht dort eine Anfrage ohne IP-Adresse weiter, und ohne Adresse überspringt die Route die Prüfung (Shopware-Quelltext). Für das Durchprobieren ist dieser Limiter also nicht gebaut, und eine eigene Bremse am Gutscheinfeld gehört in den Shop.
Das BSI verlangt im IT-Grundschutz für Webanwendungen ausdrücklich Schutz vor unerlaubter automatisierter Nutzung (BSI IT-Grundschutz) und zugleich, dass die Wirkung der Schutzmechanismen auf berechtigte Nutzer berücksichtigt wird. Für das Gutscheinfeld bedeutet das eine Bremse mit mehreren Zählern, die jeweils etwas anderes erfassen:
- Je Warenkorb oder Sitzung: wenige Fehlversuche in kurzer Folge, danach eine wachsende Wartezeit. Echte Kunden vertippen sich ein- oder zweimal, nicht zwanzigmal in einer Minute.
- Je Kundenkonto: dieselbe Grenze über mehrere Sitzungen hinweg, damit ein neuer Warenkorb den Zähler nicht zurücksetzt.
- Je IP-Adresse und Netz: eine großzügigere Grenze, weil hinter einer Firmen- oder Mobilfunkadresse viele echte Kunden stehen können.
- Über den ganzen Shop: ein Zähler aller Fehlversuche, der nicht bremst, sondern alarmiert. Er erkennt verteilte Angriffe, die jede Einzelgrenze unterlaufen.
- Einheitliche Antwort: Die Meldung für einen unbekannten Code unterscheidet sich möglichst nicht von der für einen bereits eingelösten. Jede Unterscheidung verrät, dass ein Code existiert.
Der letzte Punkt folgt einem Prinzip, das derselbe BSI-Baustein am Beispiel von Konten beschreibt: Gibt eine Anwendung Auskunft über vorhandene Konten, lässt sich daraus eine Liste gültiger Konten erzeugen (BSI IT-Grundschutz). Bei Codes ist es dasselbe. Ist die Grenze erreicht, antwortet der Shop mit dem Statuscode 429, der laut RFC anzeigt, dass in einem Zeitraum zu viele Anfragen gesendet wurden (RFC 6585). Die Antwort darf einen Retry-After-Kopf mit der Wartezeit tragen. Der RFC hält auch fest, dass ein Server unter Angriff nicht jede Anfrage mit 429 beantworten muss, weil schon das Antworten Ressourcen kostet (RFC 6585). Bei massenhaften Versuchen aus einem Netz ist darum eine Regel in der Web Application Firewall die günstigere Stelle.
Fehlversuchsspitzen erkennen und melden
Eine Bremse ohne Messung bleibt stumm: Sie greift, aber niemand erfährt davon. Fehlversuche am Gutscheinfeld gehören darum als eigene Kennzahl ins Monitoring, aufgeteilt nach Minute, Verkaufskanal und Herkunft. Den Normalwert liefert der Shop selbst. In ruhigen Wochen bewegt sich die Zahl ungültiger Codeeingaben in einem schmalen Band, an Aktionstagen steigt sie mit den Besuchern. Der Alarm vergleicht deshalb nicht mit einer festen Zahl, sondern mit dem Verhältnis von Fehlversuchen zu Warenkörben.
Die OWASP API Security Top 10 nennen als Gegenmittel gegen automatisierten Zugriff auf sensible Geschäftsabläufe die Suche nach nicht menschlichen Mustern, etwa wenn zwischen „in den Warenkorb“ und „Kauf abschließen“ weniger als eine Sekunde liegt (OWASP API Security Top 10). Am Gutscheinfeld sehen solche Muster so aus: Versuche im Abstand von Millisekunden, Codes in alphabetischer oder numerischer Folge, viele Eingaben ohne einen einzigen Artikelwechsel und Anfragen ohne vorherigen Seitenaufruf. Ein erster Blick gelingt schon mit dem Zugriffsprotokoll des Webservers. Die Storefront nimmt Codes über die Route POST /checkout/promotion/add entgegen (Shopware-Quelltext):
#!/usr/bin/env bash
# Versuche am Gutscheinfeld je IP-Adresse und Minute aus dem Zugriffsprotokoll
# (Format "combined", Storefront-Route POST /checkout/promotion/add)
LOG="${1:-/var/log/nginx/access.log}"
SCHWELLE=20 # Versuche je Minute und Adresse, ab denen eine Zeile erscheint
awk -v s="$SCHWELLE" '$6 == "\"POST" && $7 ~ /^\/checkout\/promotion\/add/ {
split($4, t, ":"); minute = t[2] ":" t[3]
n[$1 " " minute]++
}
END { for (k in n) if (n[k] >= s) print n[k], k }' "$LOG" | sort -rn | head -20
Das Zugriffsprotokoll zeigt Versuche, aber nicht, ob ein Code gültig war. Für einen ersten Alarm reicht das: Wer in einer Minute zwanzig Codes ausprobiert, kauft nicht gewöhnlich ein. Den Ausgang jeder Eingabe kennt nur die Anwendung. Dort gehört ein eigener Protokolleintrag hin, der Zeitpunkt, Warenkorb, Konto und Ergebnis festhält, aber nicht den vollständigen Code. Gekürzt auf die ersten Zeichen bleibt er für die Mustersuche brauchbar und gibt im Protokoll keinen gültigen Code preis.
Die Schwelle kommt aus dem eigenen Verlauf
Wie Schwellen, Eskalation und Alarmmüdigkeit zusammenspielen, beschreibt der Beitrag zu Log-Monitoring und Alerting. Für das Gutscheinfeld genügt am Anfang eine Stufe für den Tagesbericht und eine für die sofortige Benachrichtigung.
Neukundenrabatt gegen Mehrfachkonten absichern
Der Neukundenrabatt wird am leichtesten mehrfach abgeholt, weil er an eine Eigenschaft geknüpft ist, die sich herstellen lässt. In Shopware prüft die Neukunden-Bedingung im Rule Builder, ob das Datum der ersten Anmeldung dem heutigen Datum entspricht; die Dokumentation kündigt ihren Wegfall an und empfiehlt stattdessen die Bedingung für die Zeit seit der ersten Anmeldung (Shopware-Dokumentation). Beide Bedingungen hängen am Kundenkonto. Ein neues Konto mit neuer E-Mail-Adresse ist für die Regel ein neuer Kunde.
Die OWASP API Security Top 10 beschreiben das Muster am Beispiel eines Empfehlungsprogramms: Ein Angreifer automatisiert die Registrierung, und jedes neue Konto schreibt ihm Guthaben gut (OWASP API Security Top 10). Für den Shop ist der wirtschaftliche Effekt derselbe, wenn ein Willkommenscode über viele Konten in Bestellungen an dieselbe Anschrift fließt. Gleichzeitig sind Rabatte ein Tausch gegen Daten, den viele Kunden bewusst eingehen: 56 Prozent der Online-Shopper sind bereit, ihre Daten für Rabatte zur Verfügung zu stellen (Bitkom). Der Neukundenrabatt bleibt also ein sinnvolles Werkzeug. Er braucht nur eine Prüfung, die über das Konto hinausreicht und mit Signalen arbeitet statt mit einem einzelnen harten Kriterium:
- Normalisierte E-Mail-Adresse: Viele Postfächer nehmen Zusätze nach einem Trennzeichen wie „+“ an. RFC 5233 beschreibt dieses Subaddressing und weist darauf hin, dass die Kodierung anbieterspezifisch ist (RFC 5233). Bei Gmail-Adressen spielen Punkte keine Rolle, bei Gmail-Postfächern unter der eigenen Domain einer Organisation dagegen schon (Gmail-Hilfe). Die normalisierte Fassung dient nur dem Vergleich und ersetzt nicht die gespeicherte Adresse.
- Liefer- und Rechnungsanschrift: dieselbe Anschrift in mehreren Neukundenbestellungen innerhalb der Aktion, auch mit abweichender Schreibweise von Straße oder Hausnummer.
- Zahlungsweg: dasselbe Zahlungskonto hinter mehreren neuen Kundenkonten, soweit der Zahlungsdienst dafür eine wiederkehrende Kennung liefert.
- Zeitliche Nähe: viele Registrierungen mit anschließender Codeeinlösung in kurzer Folge aus demselben Netz.
Ein Treffer bei einem dieser Signale ist ein Prüffall, kein Beweis. Familien teilen Anschriften, Kollegen ein Firmennetz. Sinnvoll ist deshalb eine Stufung: Die Bestellung geht ein, bei auffälliger Häufung wird der Rabatt vor dem Versand geprüft, und erst eindeutige Serien führen zu Maßnahmen nach den veröffentlichten Aktionsbedingungen. Diese Bedingungen legen vor dem Start fest, dass der Rabatt einmal je Person oder Haushalt gilt – ohne diese Festlegung fehlt später die Grundlage für jede Entscheidung.
Datenschutz bei der Missbrauchsprüfung
Wenn Codes auf Gutscheinportalen landen
Nicht jeder Missbrauch braucht einen Bot. Ein Code, der für den Newsletter gedacht war, kann kurz nach dem Versand auf Gutscheinportalen und in Schnäppchenforen stehen. Ab dann lösen ihn Besucher ein, für die er nicht gedacht war, und die Aktion kostet mehr als geplant. Technisch ist das kein Angriff, im Monitoring sieht es trotzdem nach einem aus: Die Einlösungen eines Codes steigen sprunghaft, neue Besucher kommen über fremde Verweise, und der Anteil der Bestandskunden unter den Einlösenden fällt.
Das wirksamste Gegenmittel ist die Wahl der Codeart. Shopware unterscheidet feste Aktionscodes, die für alle Kunden gleich sind, von individuellen Codes, die nur einmal eingelöst werden können und bei erneuter Eingabe abgelehnt werden (Shopware-Dokumentation). Feste Codes lassen sich über die Felder für die maximale Nutzung insgesamt und je Kunde begrenzen (Shopware-Dokumentation). Bei individuellen Codes gilt außerdem: Werden die Codes einer Aktion nachträglich angepasst und neu erzeugt, verlieren die bisherigen ihre Gültigkeit (Shopware-Dokumentation). Im Normalbetrieb ist das eine Falle, im Missbrauchsfall ein Werkzeug – vorausgesetzt, die berechtigten Empfänger erhalten danach neue Codes.
| Codeart | Typischer Einsatz | Risiko in der Black Week | Schutz |
|---|---|---|---|
| Fester Code | Banner, Anzeige, soziale Kanäle | Verbreitet sich frei, Einlösungen ohne Obergrenze | Gesamt- und Kundengrenze, kurze Laufzeit, Mindestbestellwert |
| Individueller Code | Newsletter, Kundenbindung, Partner | Durchprobieren der Serie | Genug Zufallsstellen, Rate-Limit, Alarm bei Fehlversuchen |
| Neukundencode | Registrierung, Willkommensmail | Mehrfachkonten | Signale über das Konto hinaus, Prüfung vor dem Versand |
| Kanalcode | Partner, Kooperationen, Affiliate | Weitergabe außerhalb des Kanals | Eigener Code je Kanal, Auswertung je Herkunft |
Für die Erkennung lohnt der Blick auf die Herkunft der Einlösungen. Tragen eingelöste Codes eines Kanals plötzlich Verweise von fremden Seiten, oder lösen Konten ohne Newsletter-Anmeldung einen Newsletter-Code ein, ist der Code durchgesickert. Die Reaktion richtet sich nach dem Schaden: eine Gesamtgrenze setzen, den Code früher beenden oder ihn für neue Warenkörbe sperren und den berechtigten Empfängern einen Ersatz schicken.
Mehrfacheinlösung und gleichzeitige Anfragen
Ein Code, der laut Aktion einmal gelten soll, ist nur dann einmalig, wenn die Anwendung das an der richtigen Stelle prüft. Der OWASP Web Security Testing Guide nennt als Beispiel einen Shop, der einen Rabatt nur einmal je Transaktion erlaubt, und empfiehlt harte Kontrollen: den Code auf Datenbankebene ungültig setzen oder einen Zähler je Nutzer im Backend führen (OWASP Web Security Testing Guide). Eine Prüfung allein in der Oberfläche, im Warenkorb oder in einer zwischengespeicherten Antwort reicht dafür nicht.
Die zweite Schwachstelle ist die Gleichzeitigkeit. CWE-362 beschreibt eine Codefolge, die kurzzeitig exklusiven Zugriff auf eine gemeinsame Ressource braucht, während ein Zeitfenster bleibt, in dem eine parallel laufende Folge sie verändern kann (MITRE CWE). Übertragen auf Gutscheine: Zwei Bestellungen mit demselben Einmalcode werden im selben Moment abgeschlossen, beide prüfen „noch nicht eingelöst“, und beide erhalten den Rabatt. Wie eng dieses Fenster in einem konkreten Shop ist, hängt von Version, Erweiterungen und Datenbankeinstellungen ab. Prüfen lässt es sich nur im Test: auf der Staging-Umgebung mit parallel abgeschickten Bestellungen, nicht im Livebetrieb.
Dieser Test gehört in die Vorbereitung jeder größeren Aktion und nach jedem Update von Kern oder Aktionserweiterungen in die Regressionstests. Mit einem kleinen Skript lässt er sich beliebig oft wiederholen und zeigt, ob die Einmalprüfung unter Last hält, bevor echte Kunden sie in der Aktionswoche auf die Probe stellen.
Das Aktionsende sauber schließen
Manche Aktion endet auf dem Papier und läuft im Shop weiter. Shopware begrenzt eine Aktion über ein Gültigkeitsdatum von und bis und lässt sie über einen Schalter deaktivieren (Shopware-Dokumentation). Beides muss zum veröffentlichten Aktionsende passen, einschließlich der Uhrzeit. Steht in der Werbung „bis Montag, 23:59 Uhr“, muss das Gültigkeitsende genau diese Uhrzeit in der Zeitzone des Shops treffen. Nach dem Ende beginnt die Auswertung. Eine kurze Liste schließt die Aktion sauber:
- Gültigkeitsende geprüft: Ein Testwarenkorb lehnt den Code nach Ablauf ab.
- Für eine Folgeaktion eine neue Aktion angelegt, statt die alte samt alter Codes wieder zu aktivieren.
- Einlösungen je Code, Konto und Lieferanschrift ausgewertet, Auffälligkeiten für die nächste Aktion notiert.
- Fehlversuche am Gutscheinfeld auch nach dem Aktionsende beobachtet: Ein Anstieg zeigt Bots, die mit alten Codelisten weiterarbeiten.
- Schwellen und Bereitschaft auf den Normalbetrieb zurückgesetzt, Ausnahmen aus dem Änderungsstopp dokumentiert.
Fahrplan bis zum 27. November
Zwischen Mitte Oktober und dem Black Friday liegen sechs Kalenderwochen. Die Reihenfolge der Schritte folgt einer einfachen Logik: Erst wenn feststeht, welche Codes es gibt, lässt sich die Bremse bemessen, und erst wenn die Bremse steht, lässt sich der Alarm einstellen.
KW 42 bis 43: Bestandsaufnahme
Alle geplanten Aktionen mit Codeart, Kanal, Laufzeit und erwarteter Zahl an Einlösungen erfassen. Laufende Daueraktionen und alte Codeserien prüfen und, wo nötig, schließen.
KW 44: Codes erzeugen
Individuelle Codes mit ausreichend Zufallsstellen anlegen, feste Codes mit Gesamt- und Kundengrenze versehen, Neukundenregeln um Signale über das Konto hinaus ergänzen.
KW 45 bis 46: Bremse und Alarm
Rate-Limit am Gutscheinfeld einrichten, Fehlversuche als Kennzahl erfassen und die Schwelle aus dem Verlauf der Vorwochen ableiten. Auf Staging die Einmalprüfung mit parallelen Bestellungen testen.
KW 47: Probelauf
Einen Angriff mit einigen hundert Versuchen auf Staging nachstellen: Greift die Bremse, kommt der Alarm an, sieht die Bereitschaft, woher die Versuche stammen?
KW 48 bis 49: Aktionswoche
Engere Schwellen, kurze Reaktionswege, tägliche Auswertung der Einlösungen. Nach dem Cyber Monday am 30. November die Aktion nach der Liste schließen.
Alle geplanten Aktionen mit Codeart, Kanal, Laufzeit und erwarteter Zahl an Einlösungen erfassen. Laufende Daueraktionen und alte Codeserien prüfen und, wo nötig, schließen.
Individuelle Codes mit ausreichend Zufallsstellen anlegen, feste Codes mit Gesamt- und Kundengrenze versehen, Neukundenregeln um Signale über das Konto hinaus ergänzen.
Rate-Limit am Gutscheinfeld einrichten, Fehlversuche als Kennzahl erfassen und die Schwelle aus dem Verlauf der Vorwochen ableiten. Auf Staging die Einmalprüfung mit parallelen Bestellungen testen.
Einen Angriff mit einigen hundert Versuchen auf Staging nachstellen: Greift die Bremse, kommt der Alarm an, sieht die Bereitschaft, woher die Versuche stammen?
Engere Schwellen, kurze Reaktionswege, tägliche Auswertung der Einlösungen. Nach dem Cyber Monday am 30. November die Aktion nach der Liste schließen.
Wer erst in der Aktionswoche nachrüstet, ändert den Shop in einer Zeit mit hohem Umsatz und knappem Personal. Die Vorbereitung im Oktober braucht dagegen vor allem Planung und Tests auf der Staging-Umgebung.
Was die Wartung dabei übernimmt
Für Shopbetreiber ist Codemissbrauch selten das tägliche Thema. Ohne eigene Kennzahl fällt er darum leicht erst in der Monatsauswertung auf, wenn die Marge der Aktion schon fehlt. In einem Wartungsvertrag gehört er zum laufenden Betrieb: Unser Monitoring wertet Webserver- und Anwendungsprotokolle auf kritische und verdächtige Zugriffsmuster aus, die Alarmschwellen werden individuell für den Shop eingestellt, und für Black Friday und das Weihnachtsgeschäft verkürzen wir Prüfintervalle, setzen Schwellen enger und erweitern die Bereitschaft.
Die Abwehr auf Netzebene ist Teil der Sicherheitsupdates: Wir konfigurieren und pflegen WAF-Regeln, prüfen Updates vorab auf Staging einschließlich Checkout und ziehen Schutzmaßnahmen nach, wenn ein neues Angriffsmuster auftaucht. Eine eigene Bremse in der Anwendung erweitert den Funktionsumfang und wird deshalb als eigenes Projekt angeboten; die Shopware-Wartung prüft sie danach bei jedem Update mit. Reaktionszeiten und Bereitschaft in der Aktionswoche regelt der SLA-Wartungsvertrag.
Kennzahl statt Bauchgefühl
Fehlversuche am Gutscheinfeld je Minute und Herkunft, verglichen mit dem Verlauf der Vorwochen.
Schwellen für die Aktionswoche
Engere Alarmgrenzen und erweiterte Bereitschaft rund um Black Friday und Cyber Monday.
Prüfung nach Updates
Einmalprüfung und Bremse gehören nach Updates von Kern und Erweiterungen in die Tests auf Staging.
Kommt ein Angriff trotzdem durch, beginnt der Ablauf aus dem Notfall-Support: Code sperren, Bremse verschärfen, Einlösungen sichten und betroffene Bestellungen vor dem Versand prüfen. Einen Überblick über alle Bausteine der Betreuung gibt die Seite Leistungen.
Verwandte Artikel
WordPress-Sicherheit 2026: Härtung und Updates
WordPress absichern 2026: Core-Härtung, Plugin-Sicherheit, Brute-Force-Schutz, Web Application Firewall und Security-Monitoring im Praxis-Leitfaden.
Cache-Drift im Shop: alte Preise, fremde Warenkörbe
Seiten-, Objekt- und Auslieferungs-Cache laufen auseinander: Der Shop zeigt einen Preis, die Kasse rechnet einen anderen. Wie sich Drift messen und abstellen lässt.
Wenn die Platte voll läuft: Shop-Speicher überwachen
Eine volle Datenpartition erzeugt keinen Ausfall, sondern hängende Bestellungen. Welche Verzeichnisse wachsen, welche Schwelle greift, welcher Turnus hilft.