CSRFTokenValidationException

Hallo,

 

ich habe eben folgende ERROR-Meldung per Mail bekommmen:

exception ‚Shopware\Components\CSRFTokenValidationException‘ with message ‚The provided X-CSRF-Token for path „/checkout/addArticle“ is invalid. Please go back, reload the page and try again.‘ in /var/www/vhosts/neonsensation.de/httpdocs/engine/Shopware/Components/CSRFTokenValidator.php:155 Stack trace: #0 [internal function]: Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs)) #1 /var/www/vhosts/neonsensation.de/httpdocs/engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs)) #2 /var/www/vhosts/neonsensation.de/httpdocs/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs)) #3 /var/www/vhosts/neonsensation.de/httpdocs/engine/Library/Enlight/Controller/Action.php(143): Enlight_Event_EventManager->notify(‚Enlight_Control…‘, Object(Enlight_Controller_ActionEventArgs)) #4 /var/www/vhosts/neonsensation.de/httpdocs/engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch(‚addArticleActio…‘) #5 /var/www/vhosts/neonsensation.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/neonsensation.de/httpdocs/engine/Shopware/Kernel.php(189): Enlight_Controller_Front->dispatch() #7 /var/www/vhosts/neonsensation.de/httpdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #8 /var/www/vhosts/neonsensation.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #9 /var/www/vhosts/neonsensation.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/neonsensation.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/neonsensation.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true) #12 /var/www/vhosts/neonsensation.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/neonsensation.de/httpdocs/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 /var/www/vhosts/neonsensation.de/httpdocs/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #15 {main}

{ „uri“: „/checkout/addArticle“, „method“: „POST“, „query“: { „module“: „frontend“, „controller“: „checkout“, „action“: „addArticle“ }, „post“: { „sActionIdentifier“: „“, „sAddAccessories“: „“, „sAdd“: „SW2516“, „sQuantity“: „2“, „In_den_Warenkorb“: „“ } }

 

Weißt jemand woran das liegen kann?

Grüße

Wir haben das selbe Problem:

exception ‘Shopware\Components\CSRFTokenValidationException’ with message ‘The provided X-CSRF-Token for path “/newsletter-” is invalid. Please go back, reload the page and try again.’ in /engine/Shopware/Components/CSRFTokenValidator.php:155 Stack trace:
#0

Dies taucht auf seit dem wir PayPal Plus wieder installiert haben. Ich musste die Newsletterabfrage deaktivieren im Bestellabschluß, dann kam der Fehler nicht mehr und man konnte wieder bestellen… Aber intern im Log taucht der Fehler weiterhin auf. Keine Ahung wie man das beseitigt…

Hi, abschalten siehe hier:

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

Grüße Matthias

Hi, bringt mich leider nicht weiter, da ich keine Ahnung von PHP habe…

@shabby schrieb:

Hi, bringt mich leider nicht weiter, da ich keine Ahnung von PHP habe…

In deiner config.php im Hauptverzeichnis trägst du einfach folgendes ein:

 

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

 

Abschalten ist nicht gerade der beste Tipp. Wenns ein Bot ist, ist die Meldung ja sogar korrekt. Man sollte eher auf Ursachenforschung gehen und erstmal schauen, wer da irgendeinen Request abgeschickt hat.

Hallo Moritz:

Und wo kann ich das nachschauen? Hat ja was mit dem Newsletter zu tun 'The provided X-CSRF-Token for path " /newsletter-" is invalid. Aber was soll ich da machen?

@trixx schrieb:

@shabby schrieb:

Hi, bringt mich leider nicht weiter, da ich keine Ahnung von PHP habe…

In deiner config.php im Hauptverzeichnis trägst du einfach folgendes ein:

 

‚csrfProtection‘ => [
‚frontend‘ => false,
‚backend‘ => true
],

 

Mit FTP aufm Server anmelden und dann in meinem Hauptverzeichenis die PHp anpassen meinst Du?

@shabby schrieb:

Hallo Moritz:

Und wo kann ich das nachschauen? Hat ja was mit dem Newsletter zu tun 'The provided X-CSRF-Token for path " /newsletter-" is invalid. Aber was soll ich da machen?

Naja erstmal testest du, ob du dich zum Newsletter anmelden kann. Wenn das funktioniert, sieht es ja erstmal nicht nach einem allgemeinen Problem aus. Dann müsstest du im Access-Log des Servers schauen, welche IP/User-Agent zu der Zeit des Fehlers die Seite aufgerufen hat. Also war das ein Bot oder ein User. Wenn es ein Bot war, ist es ja völlig korrekt, dass die Mail kommt. 

Zum Newsletter kann ich mich anmlden ohne Probleme. wenn ich aber jetzt einen Newsletter erstellen möchte taucht dies hier in der Vorschau auf:

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

Syntax Error in template “/*******/www.shabby-world.de/themes/Frontend/mein Theme/newsletter/index/footer.tpl” on line 40 “<a href=”{$sStart|dirname}/backend/newsletter?campaign={$sCampaign.id}&mailaddress={$sUser.mailaddressID}&hash={$sCampaignHash}" target="_blank" style=“color:#000 !important;”>" modifier ‘dirname’ not allowed by security setting in engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657

Stack trace:

 #0 engine/Library/Smarty/sysplugins/smarty\_security.php(227): Smarty\_Internal\_TemplateCompilerBase-\>trigger\_template\_error('modifier 'dirna...') #1 engine/Library/Smarty/sysplugins/smarty\_internal\_compile\_private\_modifier.php(98): Smarty\_Security-\>isTrustedPhpModifier('dirname', Object(Smarty\_Internal\_SmartyTemplateCompiler)) #2 engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php(475): Smarty\_Internal\_Compile\_Private\_Modifier-\>compile(Array, Object(Smarty\_Internal\_SmartyTemplateCompiler), Array, NULL, NULL) #3 engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php(249): Smarty\_Internal\_TemplateCompilerBase-\>callTagCompiler('private\_modifie...', Array, Array) #4 engine/Library/Smarty/sysplugins/smarty\_internal\_compile\_private\_print\_expression.php(65): Smarty\_Internal\_TemplateCompilerBase-\>compileTag('private\_modifie...', Array, Array) #5 engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php(475): Smarty\_Internal\_Compile\_Private\_Print\_Expression-\>compile(Array, Object(Smarty\_Internal\_SmartyTemplateCompiler), Array, NULL, NULL) #6 engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php(249): Smarty\_Internal\_TemplateCompilerBase-\>callTagCompiler('private\_print\_e...', Array, Array) #7 engine/Library/Smarty/sysplugins/smarty\_internal\_templateparser.php(2358): Smarty\_Internal\_TemplateCompilerBase-\>compileTag('private\_print\_e...', Array, Array) #8 engine/Library/Smarty/sysplugins/smarty\_internal\_templateparser.php(3101): Smarty\_Internal\_Templateparser-\>yy\_r28() #9 engine/Library/Smarty/sysplugins/smarty\_internal\_templateparser.php(3201): Smarty\_Internal\_Templateparser-\>yy\_reduce(28) #10 engine/Library/Smarty/sysplugins/smarty\_internal\_smartytemplatecompiler.php(105): Smarty\_Internal\_Templateparser-\>doParse(10, '/backend/newsle...') #11 engine/Library/Smarty/sysplugins/smarty\_internal\_templatecompilerbase.php(192): Smarty\_Internal\_SmartyTemplateCompiler-\>doCompile('

Im Newsletter-Template wurde etwas mit 5.3 angepasst und diese Änderungen hast du nicht in dein Theme übernommen.

1 „Gefällt mir“

@shabby schrieb:

@trixx schrieb:

@shabby schrieb:

Hi, bringt mich leider nicht weiter, da ich keine Ahnung von PHP habe…

In deiner config.php im Hauptverzeichnis trägst du einfach folgendes ein:

 

‚csrfProtection‘ => [
‚frontend‘ => false,
‚backend‘ => true
],

 

Mit FTP aufm Server anmelden und dann in meinem Hauptverzeichenis die PHp anpassen meinst Du?

Ja genau so. Haben hier gefühlt 90 % der Nutzer einschließlich mir, in der config.php abgestellt.  Auch wenn es natürlich nicht Sinn und Zweck dieses Sicherheitsfeatures ist. Aber lieber aus als Fehler im Frontend und Kaufabbrüche. 

Ich werde heute im Laufe des Tages mal versuchen das mit dem PHP hinzubekommen. Ich habe als Bearbeitungsprogramm “atom”. Ist das dafür zu empfehlen?

Für eine kleine Änderung an PHP reicht auch notepad.exe

1 „Gefällt mir“

@shabby schrieb:

Ich werde heute im Laufe des Tages mal versuchen das mit dem PHP hinzubekommen. Ich habe als Bearbeitungsprogramm „atom“. Ist das dafür zu empfehlen?

ich arbeite auch mit Atom und finde es sehr gut. 

1 „Gefällt mir“

Die Deaktiverung in der config.php hat leider nur bewirkt, dass ich einen Fehler im backend hatte und es nicht mehr geladen wurde.

Ich habe es genauso übernommen

… ‘csrfProtection’ => [‘frontend’ => false, ‘backend’ => false], …

 

Hat leider nicht funktioniert.

@Moritz Naczenski schrieb:

Im Newsletter-Template wurde etwas mit 5.3 angepasst und diese Änderungen hast du nicht in dein Theme übernommen.

https://github.com/shopware/shopware/commit/37d6805f63de962ced01755cac60a4085d60f6ad

Die Änderung ist drinnen (5.3.4), aber der Fehler ist auch der gleiche, wenn man die Vorschau des Newsletters aufruft. 
 

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

Syntax Error in template "/www/htdocs/xxxxxxxxxxx/themes/Frontend/GW/newsletter/index/footer.tpl" on line 40 "<a href="{$sStart|dirname}/backend/newsletter?campaign={$sCampaign.id}&mailaddress={$sUser.mailaddressID}&hash={$sCampaignHash}" target="_blank" style="color:#000 !important;">" modifier 'dirname' not allowed by security setting in engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657

Stack trace:

#0 engine/Library/Smarty/sysplugins/smarty_security.php(227): Smarty_Internal_TemplateCompilerBase->trigger_template_error('modifier 'dirna...')
#1 engine/Library/Smarty/sysplugins/smarty_internal_compile_private_modifier.php(98): Smarty_Security->isTrustedPhpModifier('dirname', Object(Smarty_Internal_SmartyTemplateCompiler))
#2 engine/Library/Smarty/sysplugins/smarty_internal_temp...........

    
    
        {s name='NewsletterFooterLinkNewWindow'}{/s}

 

@shabby schrieb:

Die Deaktiverung in der config.php hat leider nur bewirkt, dass ich einen Fehler im backend hatte und es nicht mehr geladen wurde.

Ich habe es genauso übernommen

… ‚csrfProtection‘ => [‚frontend‘ => false, ‚backend‘ => false], …

 

Hat leider nicht funktioniert.

Dann hast du es falsch eingebaut. Wahrscheinlich einfach nur unten eingefügt? Das kann dann nicht funktionieren. Das ganze muss in deiner config.php wie folgt aussehen:

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

Für’s Backend kann es auch eingeschaltet bleiben. 

1 „Gefällt mir“

@Moritz Naczenski schrieb:

Im Newsletter-Template wurde etwas mit 5.3 angepasst und diese Änderungen hast du nicht in dein Theme übernommen.

https://github.com/shopware/shopware/commit/37d6805f63de962ced01755cac60a4085d60f6ad

Das hat geklappt!