Gelöst CSRF-Token und Connector

Devilman2

Gut bekanntes Mitglied
30. Juli 2006
132
7
Lüneburg
Hallo,
auf der JTLConnect 2017 hatte ich viele gute Gespräche und dabei war auch das Thema CSRF-Token im Shopware eines davon. Bis dato hatte ich dieses im Frontend deaktiviert, da es hier immer viele Error-Emails gab.
Heute habe ich mich einmal "durchgerungen" und habe die CSRF-Validierung eingeschaltet.
Jetzt bekomme ich bei jedem Abgleich mit dem Connector folgende Meldung:
Frage: ignoriert Ihr diese Meldung oder kann man das abschalten (ohne das CSRF wider auf False zu setzen)
(Shopversion 5.3.2, Connector 2.1, WAWI 1.4...)

Code:
exception 'Shopware\Components\CSRFTokenValidationException' with message 'The provided X-CSRF-Token for path "/jtlconnector/dbeS/mytest.php" is invalid. Please go back, reload the page and try again.' in /var/www/schneiderfundus.de/engine/Shopware/Components/CSRFTokenValidator.php:155
Stack trace:
#0 [internal function]: Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 /var/www/schneiderfundus.de/engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs))
#2 /var/www/schneiderfundus.de/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#3 /var/www/schneiderfundus.de/engine/Library/Enlight/Controller/Action.php(143): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#4 /var/www/schneiderfundus.de/engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch('dbeSAction')
#5 /var/www/schneiderfundus.de/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/schneiderfundus.de/engine/Shopware/Kernel.php(184): Enlight_Controller_Front->dispatch()
#7 /var/www/schneiderfundus.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /var/www/schneiderfundus.de/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#9 /var/www/schneiderfundus.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#10 /var/www/schneiderfundus.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#11 /var/www/schneiderfundus.de/engine/Shopware/Components/HttpCache/AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#12 /var/www/schneiderfundus.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /var/www/schneiderfundus.de/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#14 /var/www/schneiderfundus.de/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15 {main}
2017-08-28T14:26:11.288722+0200
core
{
    "uri": "/jtlconnector/dbeS/mytest.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "jtlconnector",
        "action": "dbeS",
        "mytest.php": ""
    },
    "post": {
        "uID": "",
        "uPWD": "C461C404-D4D4-4B73-AD5E-ED7662D21221",
        "kKunde": "8685",
        "kBestellung": "2",
        "kLieferadresse": "0",
        "kZahlungseingang": "0",
        "wawiversion": "114130"
    }
}
No session data available

Danke für ein kurzen Hinweis.

VG
Nils
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Hallo,

das ist kein Fehler, sondern die erste Testabfrage des Connectors.

Lösung: Entweder mit dem Worker abgleichen oder die Route im Webserver abfangen (404 oder 204).

MfG

Rene
 

Devilman2

Gut bekanntes Mitglied
30. Juli 2006
132
7
Lüneburg
Hi,

Danke fürdie Info. Das stimmt, beim Workerabgleich kommt keine Fehler-Email.
Werde es auf dem Server abfangen.

Vielen Dank für die Info.

herzliche Grüße

Nils
 

auf eigenen Wunsch gelöschter Benutzer 56101

Guest
Hallo Zusammen,

ich erhalte den gleichen Fehler. Könntet ihr vielleicht erklären, wie genau ich den Fehler abfange?

Danke vorab.
 

elevennerds.de

Sehr aktives Mitglied
23. September 2015
1.235
212
Du musst Deinen Webserver so konfigurieren, dass er für den Pfad
/jtlconnector/dbeS/mytest.php einen HTTP Code 404 oder 204 zurückgibt, damit der Request nicht an Shopware weitergeleitet wird.
 

auf eigenen Wunsch gelöschter Benutzer 56101

Guest
Hallo dropshipout,

danke für die schnelle Rückmeldung. Mache ich das in der .htaccess datei im Shopware Hauptpfad?
 

Daniel B.

Moderator
17. Juni 2009
1.430
40
Hey,

den Call /jtlconnector/dbeS/mytest.php könnt ihr ruhig ignorieren. Die JTL-Wawi prüft am Anfang immer einmal, ob es sich um einen JTL-Shop handelt oder um einen Connector.
Da es im Shopware den Pfad dbeS/mytest.php nicht gibt, bekommt ihr einen Fehler bzw. weil es ein POST ist, einen CSRF-Token Fehler. Das macht allerdings nichts, außer dass es im Log steht.

Lg,
Daniel
 

Ähnliche Themen