如何将CSRF添加到自定义前端Magento表单(不使用控制器)

时间:2016-03-15 19:01:02

标签: forms magento csrf

我想知道如何在自定义Magento前端表单上实现CSRF保护(在mage系统中,位于app / design /.../ templates / page /'文件夹下作为.phtml文件)POST到另一个自定义PHP页面(不在mage系统中,位于Magento文件夹的根目录下)来处理表单发送,发送电子邮件等。

我已经有自定义表单和处理程序正常工作。我只需要为这些表单添加CSRF保护,并且需要一些建议,告诉我如何使用Magento内置的CSRF密钥来实现这一点。我完全理解如何将键添加到表单.phtml页面,但我不知道如何在表单处理程序的php页面中使用_validateFormKey()函数(因为它不在mage系统中)。 / p>

我问这是否可行,因为我不想创建一个带有前端页面的自定义模块来处理任务,因为表单.phtml和处理程序页面已经设置并正常工作(没有CSRF)。是的,我已经查看了这篇文章:Magento CSRF protection

1 个答案:

答案 0 :(得分:0)

初始化Magento应用程序后,您应该能够访问Magento请求和会话对象并验证PHP脚本中的表单密钥:

$requestFormKey = Mage::app()->getRequest()->getParam('form_key');
$sessionFormKey = Mage::getSingleton('core/session')->getFormKey();
if ($requestFormKey == $sessionFormKey) {
    //go
}