У меня есть база приложений на Zend Framework 2. У меня есть форма с полем CSRF. Если я заполняю форму и отправляю через 5 минут, это дает мне The form submitted did not originate from the expected site
Ошибка проверки.
Поэтому я предположил, что это может быть проблемой с настройками сеанса. Затем я добавил варианты SessionConfig
на module.config.php
как следует
'session' => array( 'remember_me_seconds' => 2419200, 'use_cookies' => true, 'cookie_httponly' => true, 'cookie_lifetime' => '2419200', 'gc_maxlifetime' => '2419200' ),
Но проблема все еще существует. Вы знаете, как решить эту проблему?
—Обновить—
Мой класс формы содержит элемент CSRF следующим образом:
$this->add(array(
'type' => 'Zend\Form\Element\Csrf',
'name' => 'security',
'options' => array(
'csrf_options' => array(
'timeout' => 20000
)
)
));
Кажется, ничего из этого не работает.
Система Csrf в ZendFramework настраивает продолжительность сеанса из параметра, сохраненного в конфигурации элемента Csrf в разделе timeout
ключ, как показано в следующем примере:
$form->add([
'type' => Element\Csrf::class,
'name' => 'csrf',
'options' => [
'csrf_options' => [
'timeout' => 600,
],
],
]);
Других решений пока нет …