Ошибка защиты Codeigniter CSRF: - PullRequest
2 голосов
/ 09 августа 2011

Я использую CI 2. Я включил защиту CSRF в файле конфигурации:

$config['csrf_protection']   =  TRUE;
$config['csrf_token_name']   =  'sitename';
$config['csrf_cookie_name']  =  'sitename';
$config['csrf_expire']       =  7200; 

Я использую только формы Codeigniter.Иногда я получаю сообщение об ошибке «Вы не авторизованы для выполнения этого действия» при отправке форм или при входе в систему.

Если я обновлюсь и попробую еще раз, все будет работать нормально.Почему это происходит?

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Вы можете установить окно подтверждения JS, которое будет срабатывать по истечении срока действия файла cookie, и попросить пользователя продлить сеанс. Я думаю, что это самое элегантное решение, которое вы можете получить, если хотите продолжать использовать CSRF.

1 голос
/ 18 ноября 2011

Что ж, это происходит потому, что срок действия вашего токена CSRF истекает, и это правильный процесс, увеличивающий срок действия токена CSRF с 7200 секунд до чего-то более соответствующего вашим потребностям (7200/60/60 = 2 часа).

Узнайте больше о том, что CSRF делает для вас здесь:
http://en.wikipedia.org/wiki/Cross-site_request_forgery

0 голосов
/ 29 ноября 2017

Это происходит из-за истечения срока действия токена.Вы можете просто расширить базовый класс безопасности и автоматически обновить страницу.

Проверьте решение здесь

...