Shopware 5.4.5 - Backend Fehler The provided CSRF-Token is invalid

Hallo,

ich bekomme seit heute morgen folgende Meldung sobald ich versuche das Backend zu öffnen:

Modul: Shopware.apps
Pfad der Anforderung: /backend/
HTTP-Fehlermeldung: Bad Request
HTTP-Statuscode: 400 / GET

 

Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen.

The provided CSRF-Token is invalid. If you're sure that the request to path "/backend/Login?file=app&no-cache=1532089906" should be valid, the called controller action needs to be whitelisted using the CSRFWhitelistAware interface. in engine/Shopware/Components/CSRFTokenValidator.php on line 109
Stack trace:

#0 [internal function]: Shopware\Components\CSRFTokenValidator->checkBackendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs))
#2 engine/Library/Enlight/Event/EventManager.php(220): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#3 engine/Library/Enlight/Controller/Action.php(177): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#4 engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('indexAction')
#5 engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#6 engine/Shopware/Kernel.php(215): Enlight_Controller_Front->dispatch()
#7 vendor/symfony/http-kernel/HttpCache/HttpCache.php(486): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#9 vendor/symfony/http-kernel/HttpCache/HttpCache.php(253): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#10 engine/Shopware/Components/HttpCache/AppCache.php(105): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#11 shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#12 {main}

Jetzt habe ich im Dev gelesen, dass man das Token „einfach“ in der config.php deaktivieren kann.
Anderen Webseiten zufolge hat man dann aber vermehrt Spam usw. gibt es schon eine neue Lösung des Problems?

config.php

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

 

Browser Cache komplett leeren oder mal anderen Browser nutzen. Abschalten ist keine gute Lösung 

Habe ich in einem Shop auch immer wieder - da hilft tatsächlich ENTWEDER per FTP/Console den ganzen Shop-Cache zu löschen, ODER den Browser-Cache zu leeren!
Da bleibt aus welchem Grund auch immer, immer wieder ein alter Token im Browser-Cache hängen - da kansst Du reloaden, bist Du blöd wirst Angry-Face!

1 „Gefällt mir“

Gibt es da jetzt eigentlich mal von Shopware eine Lösung? Das tritt bei uns an mehreren Rechnern ständig auf. Das nervt etwas

Hi,
falls es noch relevant ist:
Du musst diene Actions whitelisten:

Der Controller benötigt ein Interface:
implements \Shopware\Components\CSRFWhitelistAware

und die Funktion

    public function getWhitelistedCSRFActions()
    {
        return [
            'index'
        ];
    }

In das Array gibst du alle Actions als String rein (ohne ‚Action‘)