代码之家  ›  专栏  ›  技术社区  ›  Richard Knop

Zend_Form_Element_Hash问题(文档不清楚?)

  •  0
  • Richard Knop  · 技术社区  · 14 年前

    文档中写道,它足以在表单中包含Zend_Form_Element_Hash元素,并且CSRF保护由Zend_Form自动处理。

    $token = new Zend_Form_Element_Hash('security_token_against_csrf');
    $token->setSalt($this->_helper->randomString());
    $form->addElement($token);
    

    但在提交任何带有此类标记的表单后,我会得到以下错误:

    The two given tokens do not match
    

    在表单验证期间,我是否也需要使用任何方法?

    1 回复  |  直到 12 年前
        1
  •  3
  •   Dan G    14 年前

    您是否尝试过将salt设置为一些定义良好(或至少可重复)的字符串?

    当Zend_Form验证时,它需要从会话数据中重新创建散列,然后将其与提交的内容进行比较,如果它正在应用不同的salt,这将导致令牌不匹配。