Stell dir vor, ein Kunde befüllt in deinem Shopware-Shop gerade zufrieden den Warenkorb und will zur Kasse gehen. Plötzlich erscheint die Meldung: "Ups, ein Fehler ist aufgetreten" oder noch genauer „Das Formular ist abgelaufen oder enthält ein ungültiges CSRF Token“. Viel dramatischer kann es kaum laufen – denn nichts bremst den Checkout so wirkungsvoll aus, wie ein unerwarteter Fehler, den weder du noch der Kunde sofort versteht. Genau hier rückt das Thema CSRF Tokens in Shopware in den Mittelpunkt: Sie gehören zu den wichtigsten, aber oft am wenigsten verstandenen Sicherheitsmechanismen im modernen E-Commerce.
In diesem Beitrag nehme ich dich mit auf eine Reise durch die Praxis: Was bedeutet CSRF überhaupt? Wofür existieren sie in Shopware, wie entstehen typische Fehler und – vor allem – wie löst du sie dauerhaft?
CSRF steht für Cross-Site Request Forgery. Das klingt nach viel Technik, ist aber vom Grundgedanken ganz einfach: Der Shop schützt sich vor unberechtigten Anfragen — also Angriffen, bei denen aus dem Kontext heraus Bestellungen oder Änderungen im Namen eines eingeloggten Users durchgeführt werden, ohne dass der User es will. Genau dazu setzt Shopware CSRF Tokens ein.
Das CSRF Token ist dabei ein einmaliger, für jeden Nutzer und jede gültige Session individuell erzeugter Code. Jeder Seitenaufruf, der Daten verändert oder abschickt, beinhaltet dieses Token – zumeist als verstecktes Feld oder im Header einer AJAX-Anfrage. Der Server prüft, ob die empfangene Anfrage ein gültiges Token enthält. Fehlt es oder ist es abgelaufen, blockiert Shopware die Anfrage.
Das schützt deinen Shop und auch deine Kunden effektiv, wenn...
Gerade weil die Mechanik im Hintergrund abläuft, fällt es Einsteigern manchmal schwer, die Ursache für typische CSRF-Probleme zu erkennen. Mit Shopware – besonders seit Version 5 und natürlich auch in Shopware 6 – können dir u.a. folgende Fehlermeldungen begegnen:
Wie kommt es im Detail zu diesen Problemen? Anhand typischer Fälle aus der Praxis siehst du schnell, wie CSRF-Fehler entstehen:
In all diesen Szenarien entstehen CSRF-Fehler, die du als Händler fast immer unmittelbar durch Kundenbeschwerden ("Ich kann nicht bestellen!", "Der Warenkorb wird nicht übernommen" etc.) bemerkst.
Bevor du technische Maßnahmen ergreifst, hilft es, die Hintergründe der Fehler zu analysieren:
Wie kommst du am schnellsten wieder zu einem stabil funktionierenden Checkout ohne Sicherheitsverlust? Hier findest du Schritt-für-Schritt-Anleitungen, die sich in der Praxis bewährt haben:
Binden eigene Formulare oder AJAX-Anfragen immer die aktuelle CSRF-Token Integration ein. In Shopware 6 kannst du im Twig-Template folgendes nutzen:
Für Formulare oft als Hidden-Input:
<input type="hidden" name="_csrf_token" value="" />
Für individuelle API- oder AJAX-Requests schicke das Token im Header mit:
headers: { 'X-CSRF-Token': token }
Achte darauf, dass dein JavaScript das Token dynamisch ausliest/zur Verfügung stellt und nicht auf veraltete Werte zurückgreift.
Stelle sicher, dass Sessions ausreichend lange aber nicht zu lange laufen (z.B. 20-30 Minuten in Standardshops). Erkläre deinen Nutzern im Zweifel freundlich, dass sie bei längerer Inaktivität die Seite neu laden sollten.
Über die Shopware-Config in der config.php oder in den Einstellungen kannst du die Session-Lifetime individuell anpassen.
Nach Änderungen an Templates oder Scripts: Leere nicht nur den Shop-Cache, sondern weise auch Nutzer darauf hin, ihren Browser-Cache zu aktualisieren. Gerade nach Shop-Updates oder Plugin-Installationen können veraltete Scripts CSRF-Mechanismen beeinträchtigen.
Falls eine vorgeschaltete Firewall, ein Reverse Proxy oder CDN genutzt wird: Stelle sicher, dass Cookies und Tokens immer durchgereicht werden. Andernfalls entstehen unvorhersehbare CSRF Fehler im Livebetrieb.
Shopware erlaubt es, für bestimmte Routen die CSRF-Überprüfung im Plugin zu deaktivieren. Das ist nur für spezielle Eigenentwicklungen, AJAX-Calls oder API-Abrufe sinnvoll, niemals für Standard-Checkout oder sensible Formulare.
// Im Plugin-Controller die Methode csrfProtected = false setzen public function csrfProtected() { return false; }
Beachte: Damit öffnest du für die jeweilige Route ein gewisses Risiko – beschränke das nur auf wirklich notwendige Ausnahmen, niemals global.
Maßnahme | Empfohlen für | Vorteil | Risiko / Nachteil |
---|---|---|---|
CSRF Token korrekt im Frontend verwenden | Alle Formulare, AJAX-Requests | Maximale Sicherheit, keine Störungen | Einmal richtig, dann läuft es stabil |
Nur für spezielle Routen deaktivieren | Eigenentwicklungen, die keine User-Aktionen ausführen | Erhöht Entwicklungskomfort | Kritische Funktionen/Checkouts nie ungeschützt! |
Globale Deaktivierung | Nicht empfohlen | Schnell Fehler weg, aber... | Akute Sicherheitslöcher, DSGVO-Gefahr |
Der Bestellprozess ist besonders sensibel: Schon kleine Fehler beim CSRF Handling sorgen schnell für Umsatzverlust. Beachte daher speziell im Checkout:
Ein Händler wollte ein individuelles Rabattfeld im Checkout anbieten. Sein Plugin ergänzt im Warenkorb ein eigenes Formular. Beim Klick auf "Rabatt einlösen" jedoch: "Shopware invalides Formular Token". Ursache: Das neue Formular bekommt kein gültiges CSRF Token, weil der Entwickler vergessen hat, es im Template einzubauen. Durch Ergänzung von
<input type="hidden" name="_csrf_token" value="" />
funktioniert der Workflow nun stabil. Typische Plugins, die eigene AJAX-Funktionen einbauen, sollten ebenfalls immer CSRF-Konformität bieten.
Mit Shopware 6 wurde die gesamte Architektur rund um Tokens nochmal überarbeitet:
Gerade im API-first-Konzept von Shopware 6 taucht diese Meldung häufiger auf, wenn Zugriffe von externen Tools oder Scripts unsauber integriert werden. Achte hier bei individuellen Integrationen darauf, dass Sessions und Cookies korrekt verwaltet werden – auch via CORS-Konfiguration und Authentifizierungs-Header.
Vorteile | Mögliche Herausforderungen |
---|---|
|
|
Fehler bei CSRF Tokens in Shopware gehören zu den häufigsten, aber auch zu den am schnellsten lösbaren Problemen in E-Commerce-Shops. Du profitierst, wenn du das Grundprinzip verstehst und gezielt die typischen Stolperfallen im Auge behältst: Eigenentwicklungen brauchen immer die passende Token-Logik, Sessions und Caches gehören regelmäßig gepflegt, und im Checkout-Szenario zählt Sorgfalt noch mehr als im übrigen Shop.
Indem du CSRF Token Fehler frühzeitig erkennst und gezielt löst, schützt du nicht nur deinen Shop vor Angriffen, sondern verbesserst auch das Nutzererlebnis deiner Kunden. Schließlich gibt es nichts Ärgerlicheres als einen abgebrochenen Warenkorb oder verlorene Kundendaten kurz vor dem Kaufabschluss. Mit dem richtigen Know-how und etwas Regelmäßigkeit beim Monitoring stellst du sicher, dass „Ups, ein Fehler ist aufgetreten“ zum Ausnahmefall wird – und dein Shopware-System das bleibt, was es sein soll: zuverlässig, sicher und vertrauenswürdig.