Shopware Backend 101 | CSRF Whitelisting

Es gibt gerade im Backend einige Actions die kein CSRF-Protection benötigen um diese aber dennoch ausführen zu können müsst Ihr folgende Dinge wissen…

CSRF Token

Eine Cross-Site-Request-Forgery (meist CSRF oder XSRF abgekürzt, deutsch etwa Website-übergreifende Anfragenfälschung) ist ein Angriff auf ein Computersystem, bei dem der Angreifer eine Transaktion in einer Webanwendung durchführt. (Quelle: Wikipedia)

Kurz um, es sorgt für die Sicherheit eurer Aufrufe. Ich bin vor kurzem über folgende Fehlermeldung gestoßen:

Das passierte als ich eine Action aus meinem Backendcontroller aufrufen wollte. Man kann nun einfach hergehen und diese Prüfung in der config.php abschalten:

aber wir möchten ja im besten Fall sauber arbeiten und lassen es daher aktiv und passen unseren Controller entsprechend an.

Controller erweitern

Als erstes binden wir die SW Komponenten CSRFWhitelistAware ein

danach implementieren wir das Interface mit implements CSRFWhitelistAware

jetzt müssen wir nur noch unsere actions (ohne Action ) als return über die Methode getWhitelistedCSRFActions() übergeben.

Wenn es nicht sofort greift müsst Ihr eventuell mal den Cache leeren und prüft vorab ob eure config.php passt.

Vorsicht
Wenn Ihr einen Backendcontroller anlegt und diesen von

statt

extenden könnt Ihr auch ohne Login auf die Action zugreifen.

Ihr könnt das ganze auch mit einem Frontend Controller machen, da aber Vorsicht, das ist definitiv kritischer als das Backend. An die meisten Funktionen kommt man ja dort ohne Login nicht ran (außer wie oben beschrieben)

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.