Я вижу эту строку кода внутри формы входа в систему.
<?php echo $block->getBlockHtml('formkey'); ?>
- Какая польза от этого?
- Это более безопасно?
- Это необходимо для формы сообщения?
Ключи форм в Magento - это средство защиты от подделки межсайтовых запросов , короче говоря, она защищает вас от попыток людей опубликовать ваши формы (например, добавить в корзину) с других сайтов, изображающих вас.
Это может быть опасно, потому что кто-то теоретически может создать свою собственную форму и опубликовать любое действие контроллера обработчика формы в вашем магазине. Защита CSRF по существу игнорирует все сообщения, которые не проходят проверку включенного параметра form_key с сообщением формы.
<?php echo $this->getBlockHtml('formkey')?>
Он говорит Magento искать блок макета с именем «formkey» и выводить его. В Magento это обычно какой-то файл, в котором есть это:
<div><input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" /></div>
Это указывает Magento на вывод и сохранение уникального ключа формы для сеанса пользователя. Все действия контроллера Magento, защищенные CSRF, проверят это, прежде чем делать что-либо ценное.
\Magento\Framework\Data\Form\FormKey\Validator
.Вы можете добавить форму ключом по этому коду:
Если вы хотите добавить ключ формы в файл phtml, используйте прямой
Использование Dependency Injection в вашем конструкторе классов:
Примечание. Не используйте диспетчер объектов напрямую в файлах phtml.
источник
ObjectManager
использование в веб-интерфейсе, это не очень хорошая практика.Нет необходимости инициализировать диспетчер объектов и все, что вы можете использовать.
Фронтенд вы можете использовать:
Надеюсь это поможет!
Благодарность
источник