关于token防跨站攻击的疑问
表单中加入隐藏域,写入token,提交时在服务端验证,可以防止跨站攻击,但有个问题是, 在服务器生成的网页源代码中,可以明文找到这个token值,类似<input type=hidden name='token_test' value='WE345RTKFITKT123' />,用户只要把这个复制过去,一样可以伪造一个表单进行提交,怎么解决这个问题呢? cocoonyun 发表于 2016-8-15 15:50
好像有点明白,好像又不太明白。那登录用户拿到token后,伪造一个表单向服务器提交数据怎么防范? ...
这个token,第三方链接(get或post)请求都是拿不到的。用户自己拥有这个token,自然有访问该链接的全部权限,不存在伪造请求。
看看csrf的原理,会明白的更清楚一些。
http://www.ifixedbug.com/posts/codeigniter-csrf-story token你可以保存在文件了啊不用给别人看比如config文件里 Aloghli 发表于 2016-8-15 10:38
token你可以保存在文件了啊不用给别人看比如config文件里
怎么隐藏,最终还是会在客户端的源代码中显示的呀 token 主要是用来防范 CSRF 攻击的,不是用来防范 XSS 攻击的。
所以拿到 token 是没关系的。 Hex 发表于 2016-8-15 14:38
token 主要是用来防范 CSRF 攻击的,不是用来防范 XSS 攻击的。
所以拿到 token 是没关系的。 ...
好像有点明白,好像又不太明白。那登录用户拿到token后,伪造一个表单向服务器提交数据怎么防范? cocoonyun 发表于 2016-8-15 15:50
好像有点明白,好像又不太明白。那登录用户拿到token后,伪造一个表单向服务器提交数据怎么防范? ...
如果用户直接用 curl 提交表单,你是防不住的。
这里防的是通过普通的浏览器提交表单。
你可以看下 CSRF 和 XSS 攻击都是什么样的攻击。
页:
[1]