Codeigniter csrf保护错误:

bjp0bcyl  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(98)

我正在使用CI 2。我已在配置文件中启用CSRF保护:

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

我只使用Codeigniter表单。有时我会在提交表单或登录时收到错误“您未被授权执行此操作”。
如果我刷新并再试一次,那么一切都工作正常。为什么会发生这种情况?

r8xiu3jd

r8xiu3jd1#

你可以做一个JS确认框,在cookie过期时触发,要求用户延长会话。我认为如果你想继续使用CSRF,这是最优雅的解决方案。

acruukt9

acruukt92#

发生这种情况是因为您的CSRF令牌到期,这是正确的过程,将CSRF令牌到期时间从7200秒增加到与您的需求更相关的时间(7200 / 60 / 60 = 2小时)。
在这里阅读更多关于CSRF为您做的事情:
http://en.wikipedia.org/wiki/Cross-site_request_forgery

相关问题