Sth*_*the 2 hash session zend-framework csrf
我正在使用ZF Zend_Form_Element_Hash来保护我的表格CSRF.但问题是生成的令牌过早到期.我猜测问题在于会话生命周期,因为这是存储它的地方.
我用这段代码来生成它:
$token = new Zend_Form_Element_Hash('tk');
$token->setSalt(md5(uniqid(mt_rand(), TRUE)));
Run Code Online (Sandbox Code Playgroud)
有什么办法可以让令牌在更长的时间内有效吗?
我做得对还是有更好的方法?我是Zend Framework的新手.
timeoutZend_Form_Element_Hash中还有一个属性,用作CSRF令牌的TTL.默认情况下为300秒(5分钟).
您可以通过传递值timeout作为选项来增加此超时.
$token = new Zend_Form_Element_Hash('tk', array('timeout' => 900)); // 15 minute TTL
Run Code Online (Sandbox Code Playgroud)
Zend_Form_Element_Hash API Doc