设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
ci3开启csrf 遇到ajax 不知道怎么搞了
返回列表
查看:
2314
|
回复:
3
[版本 3.x]
ci3开启csrf 遇到ajax 不知道怎么搞了
[复制链接]
连普科技
连普科技
当前离线
积分
920
IP卡
狗仔卡
发表于 2018-6-1 17:17:39
|
显示全部楼层
|
阅读模式
ci3开启csrf 遇到ajax 不知道怎么搞了;
如 有个注册表单 输入用户名,第一次用ajax提交到后台,查询到重复了,再次修改 提交的时候 csrf 拦截了,这种怎么破,
看了论坛上的 没有试通,
谁有做过 这种的吗
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
连普科技
连普科技
当前离线
积分
920
IP卡
狗仔卡
楼主
|
发表于 2018-6-1 18:10:55
|
显示全部楼层
最后改成了这样的
PHP
复制代码
$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
Hex
当前离线
积分
50169
IP卡
狗仔卡
发表于 2018-6-2 01:00:52
|
显示全部楼层
需要有个方式获取新生成的 token。
回复
支持
反对
使用道具
举报
显身卡
dy7338
dy7338
当前离线
积分
1283
IP卡
狗仔卡
发表于 2018-6-2 15:39:02
|
显示全部楼层
有两种方法,一种就是ajax请求的时候,返回header头里面有新的csrf信息,可以供下次请求用。
第二种方法,就是每次请求的时候csrf的name和value通过cookie来获取,这样每次请求的时候就可以正常通过。不过需要注意,获取cookie的时候不能全局通用。必须在ajax每次请求的时候通过cookie来获取csrf的value
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页