Zend 框架 1.12 - 哈希表单验证 returns 错误
Zend framework 1.12 - Hash Form Validation returns error
我正在使用 Zend_Form_Element_Hash 来保护我网站上的 csrf。下面是我的 Form.php
中的代码
$token = new Zend_Form_Element_Hash('token', 'csrf');
$token->setSalt(md5(uniqid(rand(), TRUE)));
$token->initCsrfToken();
$token->initCsrfValidator();
$this->addElement($token);
当我在我的控制器中检查 $form->isValid 时,我总是得到以下错误
The two given tokens do not match
如有任何帮助,将不胜感激!
csrf 存储在会话中,csrf 的会话名称取决于盐。如果
盐是随机的,会话名称也是随机的。所以你得不到
来自会话的 csrf 将其与来自 post 的 csrf 进行比较。制盐
此形式的常量。
不要调用initCsrfToken
,这个方法会重置csrf并被调用
自动渲染。
在创建元素时更好地传输盐
$token = new Zend_Form_Element_Hash('token', 'csrf', array('salt' => 'secure'));
$this->addElement($token);
我正在使用 Zend_Form_Element_Hash 来保护我网站上的 csrf。下面是我的 Form.php
中的代码$token = new Zend_Form_Element_Hash('token', 'csrf');
$token->setSalt(md5(uniqid(rand(), TRUE)));
$token->initCsrfToken();
$token->initCsrfValidator();
$this->addElement($token);
当我在我的控制器中检查 $form->isValid 时,我总是得到以下错误
The two given tokens do not match
如有任何帮助,将不胜感激!
csrf 存储在会话中,csrf 的会话名称取决于盐。如果 盐是随机的,会话名称也是随机的。所以你得不到 来自会话的 csrf 将其与来自 post 的 csrf 进行比较。制盐 此形式的常量。
不要调用
initCsrfToken
,这个方法会重置csrf并被调用 自动渲染。在创建元素时更好地传输盐
$token = new Zend_Form_Element_Hash('token', 'csrf', array('salt' => 'secure')); $this->addElement($token);