连普科技 发表于 2018-6-1 17:17:39

ci3开启csrf 遇到ajax 不知道怎么搞了

ci3开启csrf 遇到ajax 不知道怎么搞了;

如 有个注册表单 输入用户名,第一次用ajax提交到后台,查询到重复了,再次修改 提交的时候 csrf 拦截了,这种怎么破,
看了论坛上的 没有试通,
谁有做过 这种的吗

连普科技 发表于 2018-6-1 18:10:55

最后改成了这样的



$config['csrf_protection']                              = TRUE;
$config['csrf_token_name']                        = 'csrf_token_name';
$config['csrf_cookie_name']                        = 'csrf_cookie_name';
$config['csrf_expire']                              = 1800;
$config['csrf_regenerate']                        = FALSE;




ajax 提交 表单时
csrf_regenerate 和 csrf_expire :要结合起来用
1.csrf_regenerate 这个为 TRUE 表示每次提交操作都会重新生成 csrf_cookie ,用ajax的 把它 关闭 设为 FALSE
2.csrf_expire 失效时长,我这里1800秒,表示 如果这个表单1800秒内没有提交 , 再提交的时候就会提示你失效了,你必须重新载入一下页面;
如果一直提交,会一直有效。

好OK了,

Hex 发表于 2018-6-2 01:00:52

需要有个方式获取新生成的 token。

dy7338 发表于 2018-6-2 15:39:02

有两种方法,一种就是ajax请求的时候,返回header头里面有新的csrf信息,可以供下次请求用。
第二种方法,就是每次请求的时候csrf的name和value通过cookie来获取,这样每次请求的时候就可以正常通过。不过需要注意,获取cookie的时候不能全局通用。必须在ajax每次请求的时候通过cookie来获取csrf的value
页: [1]
查看完整版本: ci3开启csrf 遇到ajax 不知道怎么搞了