CSRFTokenValidationException & X-CSRF-Token

Hatten das gleiche Problem mit einem älteren Androidgerät (Samsung Galaxy Tab 3 10.1 / GT-P5200) und dem nativem Android-Browser. Hier hat es das zuständige Javascript nicht geschafft, den Token im korrespondierenden „hidden“-Input-Field zu setzen, da an einer anderen Stellle kein Fallback für 2 Methoden gesetzt wurde, was die Ausführung des Javascripts dann unterbrochen hat (Shopware 5.3.7), Genaueres dann gerne hier!

Ich hatte auch das gleiche Problem, bei mir lag es an einem Syntaxfehler in einer Javascript-Datei der das Komplette Shopware-Javascript lahmgelegt hat.

Natürlich liegt es an Shopware. Es liegt immer an Shopware. Wir kennen doch alle das tolle System. ;D

In unserem System trat der Fehler nach Installation des CookieConsentManager-Plugins für Shopware 5.3 auf, welches für ältere Shopware-Versionen das aktuelle Cookie-Banner nachliefert. In dieser Plugin-Version bricht (nur bei bestätigtem des Cookie-Banner) das JavaScript in unten aufgeführter Datei in Zeile 7 ab, da die Variable “window.StateManager.hasCookiesAllowed” nicht definiert ist, aber in der if-Abfrage eine Funktion erwartet wird:

/custom/plugins/SwagCookieConsentManager/Resources/frontend/_public/src/js/jquery.csrf-protection.js

Nach bestätigen des Cookie-Banners ist die Variable, bzw. die Funktion aber nicht mehr definiert. Wir haben die Abfrage daher wie folgt umgeschrieben:

if ((typeof window.StateManager.hasCookiesAllowed === “function” && window.StateManager.hasCookiesAllowed()) || window.cookieRemoval === 1) {

}

Sicherlich nur als Hotfix anzusehen und wir können derzeit nicht beurteilen, ob der Fehler nur in unserem Template oder aufgrund eines speziellen Setups auftritt - aber immerhin läuft der Shop wieder.

Wir sind aktuell dabei das Update auf Shopware 5.4 vorzubereiten. Dort tritt der Token-Fehler sporadisch auf und ist nicht verlässlich zu reproduzieren. Ob wieder ein Zusammenhang mit dem CookieConsent-Plugin besteht, können wir noch nicht beurteilen. Die besagte JS-Datei ist aber in dem Plugin für die Version 5.4 nicht vorhanden, der CSRF-Mechanismus scheint an andere Stelle ausgelagert zu sein.

Guten Tag! Das Problem, oder ein ähnliches haben wir auch.

Seit dem Update des CookieConsentManager-Plugins für Shopware 5.6 vor einigen Wochen, erzählen uns immer wieder einige Kunden, dass sie Probleme mit dem Shop haben, nicht bestellen können und den Fehler Invalides Formular-Token bekommen. Wir können den Fehler aber nicht reproduzieren, bzw. bestätigen. Bei einigen Kunden besteht der Fehler schon seit drei Wochen. 

Wie können wir das lösen, bzw. wieder in Ordnung bringen?

 

Vielen Dank im Voraus für die Unterstützung.

Wir haben das Problem immer noch. Kunden beschweren sich selten bis sehr selten über Invalides Formular-Token   und können unsere Seite nicht benutzen.

Heute bekomme ich vom Kunden die Mail, dass er nicht den Kauf abschließen konnte, weil ihm die Fehlermeldung „Invalides Formulartoken“ angezeigt wurde.

Ich habe es gerade selber getestet und bei mir funktioniert alles. Jedoch stelle ich seit Tagen auch fest, dass keine Emails mehr kommen und keine Bestellungen per Paypal mehr bezahlt werden.

Wie kann ich den Fehler nachvollziehen?

Bei uns kommt es auch bei einigen Kunden zu der Fehlermeldung:

Invalides Formular-Token!
Die Aktion konnte aufgrund eines invaliden Formular-Tokens nicht durchgeführt werden.

wir setzen Shopware v5.6.7 ein. Der Cookie Consent Manager ist in der v1.5.3 im Plugin-Verzeichnis vorhanden aber nicht installiert. Der stammt noch aus der Zeit vor dem Update auf v5.6.7. Löschen kann ich ihn nicht, da Shopware dann nicht mehr funktioniert. Siehe: https://forum.shopware.com/discussion/64720/http-error-500-nach-update-auf-5-6-3-cookie-consent-tool/p1

PayPal und Email funktionieren bei uns aber ohne Probleme.

Hallo Zusammen,
gibt es hierzu Neuigkeiten? Ich habe bei einem Kunden das gleiche Problem, aber ich kann es nicht reproduzieren.

Gleichen Problem hier

Gibt es eine Lösung bezüglich des Invalid Formular-Tokens? Bei mir melden sich auch immer wieder Kunden, die bie Bestellung mit gefülltem Warenkorb deshalb nicht abschließen können! Es gehen so Kunden und Umsatz verloren!!

1 „Gefällt mir“

Seit heute besteht das Problem bei uns auch. Gestern konnten sich die Kunden noch problemlos einloggen.

Liest hier jemand von Shopware mit, oder wird das Problem einfach ausgesessen, weil man keine Idee hat?

Der gleiche Fehler kommt auch bei der Funktion „Passwort vergessen“. Da es sowohl bei den Kunden, als auch beim eigenen austesten an mobilen Geräten und Desktops passiert, kann ein Problem bei der Nutzerhardware und an einem einzelnen Account ausgeschlossen werden.

2 „Gefällt mir“

Der erste Post mit dem Problem ist min. 23 Tage her.

Problem hat sich bei uns nach Update auf 5.7.11 anscheinend selbst gelöst.

Lässt sich das bestätigen, dass das Problem mit dem Update behoben werden kann? Ich bin bei Version 5.6.6 und ein Update ist nahezuausgeschlossen, da viele Plugin teuer neu lizensiert werden müssten um sie vor einem Update upzudaten. Oder geht ein systemupdate trotz der Warnung von nicht aktuellen Plug-In Versionen? Ich habe bereits fast 1.000€ an die Agentur gezahlt und die invalid Token Geschichte und somit verhinderte Bestellungen und fehlender Umsatz ist immer noch vorhanden!

Das Problem tritt vermutlich bei Custom Templates auf. Bei uns hat es geholfen, im tpl-file themes/Frontend/YOURTEMPLATE/frontend/index/index.tpl folgenden Code zum block „frontend_index_header_javascript“ hinzuzufügen:

{$csrfConfig = [
    'generateUrl' => {url controller="csrftoken" fullPath=false},
    'basePath' => $Shop->getBasePath(),
    'shopId' => $Shop->getId()
    ]}

Außerdem muss dieser Code zum Block „frontend_index_header_javascript_inline“:

var csrfConfig = csrfConfig || JSON.parse('{$csrfConfig|json_encode}');
            var statisticDevices = [
                { device: 'mobile', enter: 0, exit: 767 },
                { device: 'tablet', enter: 768, exit: 1259 },
                { device: 'desktop', enter: 1260, exit: 5160 }
            ];

Hier noch ein Screenshot: