用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6992|回复: 9
收起左侧

[HELP] 2.0的表单内建CSRF保护阻止ajax请求

[复制链接]
发表于 2011-4-2 07:55:34 | 显示全部楼层 |阅读模式
刚接触这两个东西不久,2.0添加了表单辅助函数内建CSRF保护
也就是$config['csrf_protection'] = TRUE;这个配置打开以后,会在cookie里面加一个token,这时候使用ajax请求服务器的页面,例如登陆页,就会返回500错误,,我对ci的用法了解的不多,请教一下这种情况应该做什么样的处理,既能有CSRF保护又可以让服务器通过ajax请求。
多谢~
发表于 2011-4-2 11:43:40 | 显示全部楼层
 楼主| 发表于 2011-4-2 11:59:21 | 显示全部楼层
谢了,就是说实际上ci校验csrf实际上就是连同表单一起post token了,其实和我们之前自己定义一个hidden再post回来校验是一个道理吧。 不过好像csrf就是黑cookie用的,ci把token写在cookie里不是会继续中招? 底层知识不足,纯属猜测,见笑
发表于 2011-6-20 17:39:05 | 显示全部楼层

评分

参与人数 1威望 -2 收起 理由
Hex -2 违反版规:纯表情回复

查看全部评分

头像被屏蔽
发表于 2011-8-1 12:59:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-9-5 09:20:40 | 显示全部楼层
对这个,用cookie的确有这个概率,只是可能性比较小了。把cookie改成session 会好点。
http://www.qinbin.me/phptoken/
发表于 2011-9-5 10:06:46 | 显示全部楼层
本帖最后由 coderboy 于 2011-9-5 10:31 编辑

现在有那种灌水机器人可以伪造session和cookie,每次做投票的时候都被人做票,只能手动去修改key,只要是页面生成通过http请求发送的,都能被模仿,如果谁有好办法,请分享
发表于 2011-9-5 10:15:09 | 显示全部楼层
第一,类似chrome和firefox这些浏览器是不允许跨域提交ajax的。
第二,cookie是可以伪造的。感觉CI用cookie来验证请求的来源,安全系数不是很高。
发表于 2011-12-18 22:36:03 | 显示全部楼层
正在犹豫中。。。
发表于 2011-12-18 22:40:27 | 显示全部楼层
刚想到一个方法,应该挺不错
还是用ci的csrf
但把HASH值 付给cookie
然后把hash 通过密钥 付给input
如果想破解就要先破解密钥

本版积分规则