Je vois cette ligne de code dans le formulaire de connexion.
<?php echo $block->getBlockHtml('formkey'); ?>
- Quelle en est l'utilité?
- Est-ce plus sûr?
- Est-ce un must pour le formulaire post?
Les clés de formulaire dans Magento sont un moyen de prévenir la contrefaçon de demande intersite , en bref, c'est pour vous protéger des personnes qui tentent de poster sur vos formulaires (comme ajouter au panier) d'autres sites se faisant passer pour vous.
Cela peut être dangereux car quelqu'un pourrait théoriquement créer son propre formulaire et le publier dans n'importe quelle action de contrôleur de gestionnaire de formulaire dans votre magasin. La protection CSRF ignore essentiellement toute publication qui échoue à la vérification du paramètre form_key inclus avec la publication de formulaire.
<?php echo $this->getBlockHtml('formkey')?>
Il indique à Magento de rechercher un bloc de mise en page avec le nom "formkey" et de le sortir. Dans Magento, c'est généralement un fichier qui contient ceci:
<div><input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" /></div>
Cela demande à Magento de générer et de stocker une clé de formulaire unique pour une session utilisateur. Toutes les actions du contrôleur Magento protégées par CSRF le vérifieront avant de faire quoi que ce soit de valeur.
\Magento\Framework\Data\Form\FormKey\Validator
.Vous pouvez ajouter formkey par ce code:
Si vous souhaitez ajouter une clé de formulaire dans un fichier phtml, utilisez directement
Utilisation de l'injection de dépendance dans votre constructeur de classe:
Remarque: N'utilisez pas le gestionnaire d'objets directement dans les fichiers phtml
la source
ObjectManager
utilisation en frontend ce n'est pas une bonne pratique.Il n'est pas nécessaire d'initialiser le gestionnaire d'objets et tout ce que vous pouvez utiliser.
Frontend, vous pouvez utiliser:
J'espère que cela t'aides!
Merci
la source