Zend Framework 3中具有Ajax形式的CSRF问题

时间:2018-12-19 12:06:12

标签: php csrf zend-framework3

我遇到ZF3 ajax格式的CSRF元素间歇性问题。我正在使用以下内容来配置元素

$this->add([
     'type' => Element\Csrf::class,
     'name' => 'onlineGameCsrf',
     'options' => [
         'csrf_options' => [
             'timeout' => 600,
         ],
     ],
 ]);

,并使用

形式
echo $this->formRow($form->get('onlineGameCsrf'));

在大多数情况下,它会按预期运行,但是每隔十次(可能十分之一)就会失败。日志显示以下错误。

[notSame] => The form submitted did not originate from the expected site

我尝试了一些在SO和其他地方发现的“修复”。第一个是将$ form-> prepare()移到视图文件,另一个是增加配置的超时。这些方法都不起作用,尽管也许我没有将超时时间增加到足够大(我最多只能达到2000)。

我以非ajax形式在网站的其他地方使用了相同的CSRF元素,并且它可以正常工作,没有任何问题。

任何帮助将不胜感激。

谢谢。

0 个答案:

没有答案