更改表单哈希(令牌)过期 Zend Framework
我正在使用 ZF 的 Zend_Form_Element_Hash
来保护我的表单免受 CSRF
的侵害。 然而问题是生成的令牌过期太快。我猜问题出在会话生命周期上,因为那是它的存储位置。
我使用此代码来生成它:
$token = new Zend_Form_Element_Hash('tk');
$token->setSalt(md5(uniqid(mt_rand(), TRUE)));
有什么方法可以使令牌在更长的时间内有效吗?
我做得对还是有更好的方法?我是 Zend 框架的新手。
I am using ZF's Zend_Form_Element_Hash
to protect my form against CSRF
.
The problem however is that the token generated expires too soon. I'm guessing the problem is with the session lifetime, because that is where it is stored.
I use this code to generate it:
$token = new Zend_Form_Element_Hash('tk');
$token->setSalt(md5(uniqid(mt_rand(), TRUE)));
Is there any way I can make the token valid for a longer period of time?
Am I doing it right or there is a better way? I am new to Zend Framework.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Zend_Form_Element_Hash 中还有一个
timeout
属性,用作 CSRF 令牌的 TTL。默认情况下为 300 秒(5 分钟)。您可以通过传递
timeout
值作为选项来增加此超时。Zend_Form_Element_Hash API 文档
There is also a
timeout
property within Zend_Form_Element_Hash that serves as a TTL for the CSRF token. By default it is 300 seconds (5 minutes).You can increase this timeout by passing a value for
timeout
as an option.Zend_Form_Element_Hash API Doc