ZF2中CSRF的默认超时

时间:2015-04-24 07:29:29

标签: zend-framework2 zend-form csrf zend-form-element csrf-protection

是否可以在Zend 2中为CSRF表单元素指定全局默认超时? 否则,我必须为每个CSRF元素指定一个超时选项。

P.S。:当前默认超时的值是什么?

2 个答案:

答案 0 :(得分:3)

Zend\Validator\Csrf的源代码中,Zend Framework 2中Csrf元素的默认超时设置为300

protected $timeout = 300; //line 70

如果要为表单中的所有Csrf元素设置相同的超时时间,可以使用所需的超时值创建自定义csrfValidator,并使用{{1}覆盖元素的默认CSRF验证程序方法。

否则,只需在向表单添加Csrf元素时更改默认选项:

  

您可以使用setCsrfValidator功能或使用setCsrfValidatorOptions键更改CSRF验证器的选项。

     

Csrf documentation

答案 1 :(得分:1)

我有自己的Form基类,派生自Zend\Form\From,我的所有表单都继承自。这样我可以为所有表单设置一些默认行为。具体来说,我现在在这个基类中的一件事是默认情况下所有表单都被赋予CSRF元素。这样我就永远不会忘记添加一个。而且,如果你这样做,那么你可以很容易地在那个地方配置你想要的任何超时,它将适用于你的所有表格。