CSRF在codeigniter中无法正常工作

时间:2016-08-29 11:53:59

标签: codeigniter

我正在使用codeigniter 3.0.6。目前正在一个页面网站上工作,其中有搜索功能。我在codeigniter的配置文件中启用了csrf_protection选项,并使用form_open()函数创建表单。

当我按下提交按钮时,搜索功能运行良好,但在刷新页面后提交表单(具有刷新页面的任何功能,即从键盘或浏览器刷新),则CSRF无效并显示错误“不允许您请求的操作。”

注意:我正在使用post方法提交表单&将csrf_regenerate设置为true。

1 个答案:

答案 0 :(得分:1)

问题在于$config['csrf_regenerate'] = TRUE;将其设置为FALSE。

每次POST到服务器时为TRUE时,CSRF令牌会更改值。必须完全重新加载页面才能接收新令牌。后退按钮不会完全重新加载页面,但浏览器的刷新/重新加载按钮应该。