【问题标题】:Change form hash (token) expiration Zend Framework更改表单哈希(令牌)到期 Zend Framework
【发布时间】:2012-03-01 04:54:00
【问题描述】:

我正在使用 ZF 的 Zend_Form_Element_Hash 来保护我的表单免受 CSRF 的侵害。 然而,问题是生成的令牌过早过期。我猜问题出在会话生命周期上,因为那是它的存储位置。

我使用这段代码来生成它:

$token = new Zend_Form_Element_Hash('tk');
$token->setSalt(md5(uniqid(mt_rand(), TRUE)));

有什么办法可以让令牌的有效期更长?

我做得对还是有更好的方法?我是 Zend 框架的新手。

【问题讨论】:

    标签: session zend-framework hash csrf


    【解决方案1】:

    在 Zend_Form_Element_Hash 中还有一个 timeout 属性,用作 CSRF 令牌的 TTL。默认为 300 秒(5 分钟)。

    您可以通过传递 timeout 的值作为选项来增加此超时时间。

    $token = new Zend_Form_Element_Hash('tk', array('timeout' => 900)); // 15 minute TTL
    

    Zend_Form_Element_Hash API Doc

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 2020-11-05
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 2013-03-20
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多