如何将 CSRF 添加到自定义前端 Magento 表单(不使用控制器)
How to add CSRF to a custom front-end Magento Form (not using controller)
我想知道如何在自定义 Magento 前端表单(在 mage 系统中,位于 app/design/.../templates/page/' 文件夹下实施 CSRF 保护作为 .phtml 文件),POST 到另一个自定义 PHP 页面(不在 mage 系统中,位于 Magento 文件夹的根目录)来处理表单 post,发送电子邮件等
我已经让自定义表单和处理程序运行良好。我只需要为这些表单添加 CSRF 保护,并且需要一些关于如何使用 Magento 的内置 CSRF 密钥来做到这一点的建议。我完全理解如何将键添加到表单 .phtml 页面,但我不确定如何在表单处理程序的 php 页面中使用 _validateFormKey() 函数(因为它不在法师系统中)。
我想问这是否可行,因为我不想创建一个带有前端页面的自定义模块来处理任务,因为表单 .phtml 和处理程序页面已经设置并可以工作(没有 CSRF) .是的,我已经看过这个 post:Magento CSRF protection.
Magento 应用程序初始化后,您应该能够访问 Magento 请求和会话对象并验证 PHP 脚本中的表单密钥:
$requestFormKey = Mage::app()->getRequest()->getParam('form_key');
$sessionFormKey = Mage::getSingleton('core/session')->getFormKey();
if ($requestFormKey == $sessionFormKey) {
//go
}
我想知道如何在自定义 Magento 前端表单(在 mage 系统中,位于 app/design/.../templates/page/' 文件夹下实施 CSRF 保护作为 .phtml 文件),POST 到另一个自定义 PHP 页面(不在 mage 系统中,位于 Magento 文件夹的根目录)来处理表单 post,发送电子邮件等
我已经让自定义表单和处理程序运行良好。我只需要为这些表单添加 CSRF 保护,并且需要一些关于如何使用 Magento 的内置 CSRF 密钥来做到这一点的建议。我完全理解如何将键添加到表单 .phtml 页面,但我不确定如何在表单处理程序的 php 页面中使用 _validateFormKey() 函数(因为它不在法师系统中)。
我想问这是否可行,因为我不想创建一个带有前端页面的自定义模块来处理任务,因为表单 .phtml 和处理程序页面已经设置并可以工作(没有 CSRF) .是的,我已经看过这个 post:Magento CSRF protection.
Magento 应用程序初始化后,您应该能够访问 Magento 请求和会话对象并验证 PHP 脚本中的表单密钥:
$requestFormKey = Mage::app()->getRequest()->getParam('form_key');
$sessionFormKey = Mage::getSingleton('core/session')->getFormKey();
if ($requestFormKey == $sessionFormKey) {
//go
}