我正在使用codeigniter 3.0.6。目前正在一个页面网站上工作,其中有搜索功能。我在codeigniter的配置文件中启用了csrf_protection选项,并使用form_open()函数创建表单。
当我按下提交按钮时,搜索功能运行良好,但在刷新页面后提交表单(具有刷新页面的任何功能,即从键盘或浏览器刷新),则CSRF无效并显示错误“不允许您请求的操作。”
注意:我正在使用post方法提交表单&将csrf_regenerate设置为true。
答案 0 :(得分:1)
问题在于$config['csrf_regenerate'] = TRUE;
将其设置为FALSE。
每次POST到服务器时为TRUE时,CSRF令牌会更改值。必须完全重新加载页面才能接收新令牌。后退按钮不会完全重新加载页面,但浏览器的刷新/重新加载按钮应该。