Codeigniter csrf保护错误:

时间:2011-08-09 10:00:12

标签: codeigniter csrf protection

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

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

我只使用Codeigniter表单。有时我会收到错误“您无权执行此操作”提交表单或登录。

如果我刷新并再试一次,那么每件事情都可以。为什么会这样?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

这种情况发生是因为您的CSRF令牌过期,正确的过程,将CSRF令牌到期时间从7200秒增加到与您的需求更相关的东西(7200/60/60 = 2小时)。

请阅读CSRF为您做的更多信息:
http://en.wikipedia.org/wiki/Cross-site_request_forgery

答案 2 :(得分:0)

这是因为令牌过期而发生的。您可以简单地扩展核心安全级别并自动刷新页面。

Check the solution here