« WTF?! On peut plus se loguer ! », ou la mise à jour de Magento vers la version 1.8

⏲️ ~2 min de lecture

Publié le par Hadrien
Magento

Connexion utilisateur, mise à jour du panier, édition des adresses, autant de formulaires qui risquent fort de ne plus fonctionner après une mise à jour en Magento version 1.8, causant ainsi le mécontentement de vos clients.

Après 9 mois d'investigation dans les favélas de Rio avoir analysé ce qu'il se passait à la soumission des dits formulaires, nous sommes désormais en mesure de vous donner une explication.

fred

Si vous avez récemment fait une mise à jour de Magento depuis une version inférieure ou égale à la 1.7 vers la 1.8, vous aurez probablement remarqué un problème avec certains formulaires côté client.
Pourquoi ? Tout simplement parce qu'avec sa version 1.8, Magento protège le front tout comme il protégeait le back jusqu'à présent : avec un "form_key", une clé unique présente dans les formulaires et qui aide à se prémunir d'attaque CSRF.

Là encore, pourquoi le front-office serait affecté et pas le back-office ? Tout simplement parce que vous avez très probablement surchargé le thème du front, ré-écrit les formulaires et par conséquent le form_key apparu dans le thème par défaut n'est pas présent dans le votre, ainsi vos formulaires ne passent pas la vérification de sécurité.

La solution ?

Insérez simplement les form_key aux bons endroits : getBlockHtml('formkey') ?> à placer sous la balise
<form>.

Pour la version actuelle (1.8.1.0) les fichiers suivants sont impactés :

Cette liste étant susceptible d'évoluer avec les prochaines versions de Magento, vous pouvez la générer vous-même avec cette simple commande : ack "formkey" app/design/frontend/base/default/template.

Cet article vous a plu ? Sachez que nous recrutons !

← Accueil