CSRF防御时,token一般放在Session中还是Cookie中?

CSRF防御,一般会由服务器生成一个随机的token,这个token会在页面form表单提交时一起提交给服务器,以此来判断是否请求是CSRF请求。那么,这个token一般放在Session还是Cookie中,还是都行?

阅读 15.9k
7 个回答

一种是SF形式,一份放在session中,另一份放表单域,提交的时候验证是否一致。

另外一种是CF形式,Cookie和表单,Cookie必须加 HTTPOnly。不能被浏览器读到的Cookie,其作用跟放在 Session里的数据一样。

Session中,Cookie可以伪造

都不行,只能放到 form 的一个隐藏中控件中。

放在前端不管放哪都可以伪造,token不就是为了权限控制和防止数据伪造吗,所以放前端哪里都一样

放在form的隐藏域或者具有http_only属性的cookie字段中也是可以的,session中有点浪费服务器资源

敏感的接口需要增加token校验,发生操作的请求前先获取安全加密token,然后请求接口带上token,后端接口需要判断token的时效性和加密规则判断

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进