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

[安全] 防止csrf攻击的疑问

[复制链接]
发表于 2014-1-10 09:01:30 | 显示全部楼层 |阅读模式
CI在操作表单时会有,会在表单中加入一个name为"csrf_test_name“的隐藏验证input,同时会在一个cookie中存入与验证input相等的值,表单提交到后台的时候对二者进行对比验证。


可是如果我模拟一个表单提交,比如用curl,我自行设定csrf_test_name的值,同时我还可以操作cookie,这样我不就通过了验证?


昨天刚开始接触CI,今天大致看了下CI防csrf的流程,因为水平问题,可能存在理解上的的错误。我觉得CI作为一个成熟的框架应该不会就这样进行简单处理。有没有知道的大神给我说说,或者一起来探讨下。
发表于 2014-1-10 10:08:47 | 显示全部楼层
这个问题很好,应该是可以的,首先程序访问表单的内容,从头部拿到cookie的内容,然后在post给提交处理页面。但crsf的作用是防止跨站攻击,需要借助他人的登录状态,这个程序获取不到。
 楼主| 发表于 2014-1-10 13:08:00 | 显示全部楼层
Bobby 发表于 2014-1-10 10:08
这个问题很好,应该是可以的,首先程序访问表单的内容,从头部拿到cookie的内容,然后在post给提交处理页面 ...

我不用cookie拿到cookie的内容,csrf_test_name和csrf_cookie_name二者的值我都自己设定,后台只是验证这二者是不是相等,我把两者的值设置成一样不就绕过了?
发表于 2014-1-10 13:48:13 | 显示全部楼层
应该也可以的, 理解的csrf是为了防止钓鱼网站跨站攻击,没有用户的会话状态这个能做什么?会产生什么危害?
发表于 2014-3-18 13:37:49 | 显示全部楼层
翁彬 发表于 2014-1-10 13:08
我不用cookie拿到cookie的内容,csrf_test_name和csrf_cookie_name二者的值我都自己设定,后台只是验证这 ...

应该是每次token都在变化吧

本版积分规则