ZF2 中 CSRF 的默认超时
Default timeout of CSRF in ZF2
是否可以在 Zend 2 中为 CSRF 表单元素指定全局默认超时?
否则我必须为每个 CSRF 元素指定一个超时选项。
P.S.: 当前默认超时值是多少?
从Zend\Validator\Csrf的源代码来看,Zend Framework 2中Csrf
元素的默认超时设置为300
:
protected $timeout = 300; //line 70
如果您想为表单中的所有 Csrf 元素设置相同的超时时间,您可以使用您想要的超时值创建自定义 csrfValidator
并使用 [= 覆盖元素的默认 CSRF 验证器14=]方法。
否则,只需在将 Csrf 元素添加到表单时更改默认选项即可:
You can change the options of the CSRF validator using the setCsrfValidatorOptions
function, or by using the csrf_options
key.
我有自己的表单基础 class,派生自 Zend\Form\From
,我的所有表单都继承自该基础。这样我就可以为所有表单设置一些默认行为。具体来说,我现在在这个基础 class 中拥有的一件事是默认情况下所有表单都被赋予一个 CSRF 元素。这样我永远不会忘记添加一个。而且,如果您这样做,那么您可以轻松地在那个地方配置您想要的任何超时,它会应用于您的所有表单。
是否可以在 Zend 2 中为 CSRF 表单元素指定全局默认超时? 否则我必须为每个 CSRF 元素指定一个超时选项。
P.S.: 当前默认超时值是多少?
从Zend\Validator\Csrf的源代码来看,Zend Framework 2中Csrf
元素的默认超时设置为300
:
protected $timeout = 300; //line 70
如果您想为表单中的所有 Csrf 元素设置相同的超时时间,您可以使用您想要的超时值创建自定义 csrfValidator
并使用 [= 覆盖元素的默认 CSRF 验证器14=]方法。
否则,只需在将 Csrf 元素添加到表单时更改默认选项即可:
You can change the options of the CSRF validator using the
setCsrfValidatorOptions
function, or by using thecsrf_options
key.
我有自己的表单基础 class,派生自 Zend\Form\From
,我的所有表单都继承自该基础。这样我就可以为所有表单设置一些默认行为。具体来说,我现在在这个基础 class 中拥有的一件事是默认情况下所有表单都被赋予一个 CSRF 元素。这样我永远不会忘记添加一个。而且,如果您这样做,那么您可以轻松地在那个地方配置您想要的任何超时,它会应用于您的所有表单。