【问题标题】:Zend_Form csrf validation for ajax queriesajax 查询的 Zend_Form csrf 验证
【发布时间】:2011-10-27 02:20:26
【问题描述】:

这是我将 csrf 添加到表单的方法

$this->addElement('hash', 'csrf', array('ignore' => false));

当发生这种情况时,会话被创建,然后当用户发送一个ajax请求时,请求中的值通过创建一个表单的实例来验证,并且表单对于自开始以来的第一个ajax请求总是有效的创建 html 输出的初始请求,

当第二次发送 ajax 请求时,会发生不同的情况,

该表单实例的 csrf 值与最初创建的不同,当我的代码完成后,最初创建的会话也被销毁,因此没有会​​话来检查接收到的值,因此表单未通过验证并出现以下错误。

No token was provided to match against

任何想法在哪个事件中,表单的csrf值会自动存储在会话中?

【问题讨论】:

  • 您的标题与问题不符,请考虑修改

标签: ajax zend-framework validation csrf


【解决方案1】:

哈希值在渲染时生成,每次请求后失效。

如果您想在您的 AJAX 表单中继续使用Zend_Form_Element_Hash,该表单可能会提交多次,您的 AJAX 响应应该包含新的哈希值。收到响应后,您应该更新表单数据。

【讨论】:

    【解决方案2】:

    有一个解决方案不需要在视图中渲染:Totaly ajax! How to use Zend Framework Form Hash (token) with AJAX

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      相关资源
      最近更新 更多