Formkey in Magento 1 korrekt einbinden

Seit dem Magento Update auf die Version CE 1.9.3.4. wurde wieder einige Sicherheitslücken geschlossen. In manchen Fällen kann der durch im Checkout implementierte Formkey Probleme mit einem bestehenden Theme auslösen. Dies äußert sich in der Regel in einem fehlerhaften Checkout. Bei uns konnte der Kaufen-Button nicht mehr genutzt werden. Hier erklären wir dir, wie du den Formkey korrekt einbindest.

Formkey im Checkout

Der Formkey ist Magento-Entwicklern kein Unbekannter. Seit Mitte 2017 erhält dieser nun auch Einzug in den Checkout. Dabei liegt der Fokus auf der Absicherung gegen Cross Site Request Forgery. Damit nach dem Update der Formkey keine Probleme im Checkout verursacht ist es zwingend notwendig, dass einige Dateien um den Formkey erweitert werden.

Manueller Eingriff

Der Eingriff am offenen Magento System ist in der Tat schnell und sauber erledigt. Dabei müsst ihr die folgende Zeile vor dem schließenden -Tag einbinden:

<?php echo $this->getBlockHtml('formkey') ?>

Wie bei allen Updates und Eingriffen sollte natürlich vorher ein Backup gemacht werden und der Compiler deaktiviert werden.

Nun geht es darum die korrekten Dateien zu finden. Die folgenden forms müssen um die obere Zeile erweitert werden:

Shipping cart form:

app/design/frontend/package/theme/template/checkout/cart/shipping.phtml

Multishipping billing checkout form:

app/design/frontend/package/theme/template/checkout/multishipping/billing.phtml

Multishipping shipping checkout form:

app/design/frontend/package/theme/template/checkout/multishipping/shipping.phtml

Multishipping addresses checkout form:

app/design/frontend/package/theme/template/checkout/multishipping/addresses.phtml

Billing checkout form:

app/design/frontend/package/theme/template/checkout/onepage/billing.phtml

Shipping checkout form:

app/design/frontend/package/theme/template/checkout/onepage/shipping.phtml

Payment checkout form:

app/design/frontend/package/theme/template/checkout/onepage/payment.phtml

Shipping method checkout form:

app/design/frontend/package/theme/template/checkout/onepage/shipping_method.phtml

Persistent Billing checkout form:

app/design/frontend/package/theme/template/persistent/checkout/onepage/billing.phtml

Wie nach jedem Update empfehlen wir die alte Dateien zu sichern und das Backup einige Zeit aufzubewahren.

Nach erfolgreichem Eingriff

Die Operation durchgeführt muss im Backend noch der Cache geleert werden die Form Key Validation im Backend aktiviert werden.
System → Konfiguration → Admin → Sicherheit → Enable Form Key Validation on Checkout
Ein Testkauf sollte nun problemlos ablaufen.

Wenn du Hilfe bei der bei der technischen Umsetzung benötigst kannst du uns gerne unter Kontakt schreiben.