Fehlermeldung X-CSRF-Token

Liebes Forum :slight_smile: :slight_smile:

Ich habe heute Morgen mehrfach diese Fehlermeldung bekommen:

Message:    exception ‘Shopware\Components\CSRFTokenValidationException’ with message ‘The provided X-CSRF-Token is invalid. Please go back, reload the page and try again.’ in /var/www/vhosts/meinshop.de/httpdocs/engine/Shopware/Components/CSRFTokenValidator.php:161
Stack trace:
#0 [internal function]: Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 /var/www/vhosts/meinshop.de/httpdocs/engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs))
#2 /var/www/vhosts/meinshop.de/httpdocs/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#3 /var/www/vhosts/meinshop.de/httpdocs/engine/Library/Enlight/Controller/Action.php(143): Enlight_Event_EventManager->notify(‘Enlight_Control…’, Object(Enlight_Controller_ActionEventArgs))
#4 /var/www/vhosts/meinshop.de/httpdocs/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch(‘indexAction’)
#5 /var/www/vhosts/meinshop.de/httpdocs/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#6 /var/www/vhosts/meinshop.de/httpdocs/engine/Shopware/Kernel.php(177): Enlight_Controller_Front->dispatch()
#7 /var/www/vhosts/meinshop.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /var/www/vhosts/meinshop.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#9 /var/www/vhosts/meinshop.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#10 /var/www/vhosts/meinshop.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#11 /var/www/vhosts/meinshop.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(133): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#12 /var/www/vhosts/meinshop.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /var/www/vhosts/meinshop.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#14 /var/www/vhosts/meinshop.de/httpdocs/shopware.php(113): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15 {main}
Time:    2016-11-03T08:43:58.652075+0100
Channel:    core
request:    {
    “uri”: “/konfigurator/86/tischtuch_bella?c=33”,
    “method”: “POST”,
    “query”: {
        “c”: “33”,
        “module”: “frontend”,
        “controller”: “detail”,
        “action”: “index”,
        “sArticle”: “86”,
        “rewriteUrl”: “1”,
        “sCategory”: “33”
    },
    “post”: {
        “group”: {
            “6”: “42”,
            “12”: “118”,
            “8”: “46”,
            “10”: “69”,
            “11”: “73”
        },
        “__csrf_token”: “”
    }
}
session:    No session data available
shopId:    1
shopName:    meinshop

Dass sie mehrfach gekomen ist liegt wohl daran, dass es sich um einen Variantenartikel handelt und mehrere Varianten durchgespielt wurden.

Woran könnte das liegen ? Irgendwas mit X-CSRF-Token, wobei ich leider keine Ahnung habe, was das ist. Bei Wikipedia steht etwas von einem Angriff auf die Website. Besteht da ein Sicherheitsproblem ?

Liebe Grüße

Kerstin

Hallo, ich möchte noch einmal an diesen Fehler erinnern. Muss ich mir da Sorgen machen, was ist das ?

Liebe Grüße

Kerstin

Den Fehler haben viele hier im Forum. Einzig abhilfe war, den gesamten Shop auf SSL zu schalten oder die X-CSRF-Token Prüfung zu deaktivieren.

Ist dein Shop auf SSL?

Danke für die Antwort,

ne, er ist nicht af SSL, habe ich aber ohnehin vor - und zwar sehr bald.

Bis dahin würde ich aber die die X-CSRF-Token Prüfung zu deaktivieren. Wie/wo mache ich das denn ?

Liebe Grüße

Kerstin

Tante google schon kontaktet?

https://developers.shopware.com/developers-guide/csrf-protection/#disable-the-protection

Danke :slight_smile:

Hatte gegoogelt und war sogar auf der Seite. Habe die Stelle nicht gefunden, weil ich eine Backend-Möglichkeit gesucht habe.

Geht das nicht im Backend ?

(Dabei habe ich im Backend gefunden, dass das Aktivieren/Deaktivieren des Referrer-Checks nicht mehr vorhanden ist. Hat das damit estas zu tun?)

Liebe Grüße

Kerstin

Hi Kerstin,

Du musst die config.php im Shopware Hauptverzeichnis um diese Befehle erweitern:

'csrfProtection' => [
    'frontend' => false,
    'backend' => true
],

https://developers.shopware.com/developers-guide/csrf-protection/#disable-the-protection

Wird übrigens jetzt hier im Forum falsch dargestellt, das muss ein = und ein > sein

Hallo,

wenn ich den Befehl in meine config.php schreibe erhalte ich eine Syntax-Fehlermeldung:

PHP message: PHP Parse error: syntax error, unexpected ‘=>’ (T_DOUBLE_ARROW) in /…/config.php on line 11

Kann hier jemand weiterhelfen?

Vielen Dank und Grüße

Was steht in der Zeile 11 bei Dir? Er hätte auch gerne ein => dort.

Hallo NextMike,

das ist die Zeile

'frontend' => false,

Danke und Gruß

vielleicht fehlt irgendwo ein Komma, eine Klammer oder ist was zu viel. Poste mal die ganze Datei ohne kritische Daten.

  array (
    'host' => '...',
    'port' => '...',
    'username' => '...',
    'password' => '...',
    'dbname' => '...',
  ),
'csrfProtection' => [
    'frontend' => false,
    'backend' => true
],
);

 

Also bei mir ist es exakt genau so. Ich habe deinen Code sogar einmal bei mir eigebaut und es kommt keine Fehlermeldung.

Müsste also an etwas anderem liegen.

LG

Kerstin

OK, dann der Klassiker: PHP-Version? Für Apache und für CLI?

Hi, es könnte auch die falsche PHP-Version sein.
In Zeile 11 bzw. 10 steht ja [ und das kann PHP nur in den neueren Versionen.

Gruß Heiner

Dann nimmt die [ Klammern weg und mach ein Array für alte PHP Version draus.