Veo esta línea de código dentro del formulario de inicio de sesión.
<?php echo $block->getBlockHtml('formkey'); ?>
- ¿Cuál es el uso de ello?
- ¿Es más seguro?
- ¿Es imprescindible para la publicación de formularios?
Las claves de formulario en Magento son un medio para prevenir la falsificación de solicitudes de sitios cruzados , en resumen, es para mantenerlo a salvo de las personas que intentan publicar en sus formularios (como agregar al carrito) desde otros sitios que se hacen pasar por usted.
Esto puede ser peligroso porque alguien teóricamente podría crear su propio formulario y publicarlo en cualquier acción de controlador de controlador de formulario en su tienda. La protección CSRF esencialmente ignora cualquier publicación que falle una verificación en el parámetro form_key incluido con la publicación del formulario.
<?php echo $this->getBlockHtml('formkey')?>
Le dice a Magento que busque un bloque de diseño con el nombre "formkey" y lo muestre. En Magento, este suele ser un archivo que contiene esto:
<div><input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" /></div>
Esto le indica a Magento que genere y almacene una clave de formulario única para una sesión de usuario. Todas las acciones del controlador Magento protegidas por CSRF verificarán esto antes de hacer algo de valor.
\Magento\Framework\Data\Form\FormKey\Validator
.Puede agregar formkey por este código:
Si desea agregar la clave de formulario en el archivo phtml, use direct
Usando la inyección de dependencia en el constructor de tu clase:
Nota: No use el administrador de objetos directamente en archivos phtml
fuente
ObjectManager
uso en la interfaz, esto no es una buena práctica.No hay necesidad de inicializar el administrador de objetos y todo lo que puede usar.
Frontend puede usar:
¡Espero que esto ayude!
Gracias
fuente