2017-02-20 22 views
0

私はZendフレームワーク2のアプリケーションベースを持っています。私はCSRFフィールドを持つフォームを持っています。フォームに記入して約5分後に提出すると、The form submitted did not originate from the expected site検証エラーが発生します。Zend Framework 2 CSRF検証

だから、私はそれがセッション設定で何らかの問題かもしれないと思っていました。それから私はfollows

'session' => array(
    'remember_me_seconds' => 2419200, 
    'use_cookies' => true, 
    'cookie_httponly' => true, 
    'cookie_lifetime' => '2419200', 
    'gc_maxlifetime' => '2419200' 
), 

としてmodule.config.phpSessionConfigにオプションを追加しかし、問題はまだ存在しています。あなたはこの問題を解決する方法を知っていますか?

--Update--

次のように私のフォームクラスは、これらの

$this->add(array(
     'type' => 'Zend\Form\Element\Csrf', 
     'name' => 'security', 
     'options' => array(
      'csrf_options' => array(
       'timeout' => 20000 
      ) 
     ) 
    )); 

どれも動いていないようにみえ、CSRFの要素が含まれています。

答えて

1

ZendFramework下CSRFシステムは、以下の例に示すようにtimeoutキー下CSRF素子の構成に記憶されたパラメータからセッション継続時間を設定します。私は既にそれを行っている

$form->add([ 
    'type' => Element\Csrf::class, 
    'name' => 'csrf', 
    'options' => [ 
     'csrf_options' => [ 
      'timeout' => 600, 
     ], 
    ], 
]); 
+0

Infactは。私は質問を更新します。タイムアウトしても問題が発生しています。 – Ruwantha