CSRF防御,一般会由服务器生成一个随机的token,这个token会在页面form表单提交时一起提交给服务器,以此来判断是否请求是CSRF请求。那么,这个token一般放在Session还是Cookie中,还是都行?
一种是SF形式,一份放在session中,另一份放表单域,提交的时候验证是否一致。 另外一种是CF形式,Cookie和表单,Cookie必须加 HTTPOnly。不能被浏览器读到的Cookie,其作用跟放在 Session里的数据一样。
CSRF 跨站请求伪造。通常,这种方式攻击,攻击者并不能获取用户的cookie。而是利用用户cookie访问目标网站。指直接利用cookie,而非盗取cookiecsrftoken防御一种方式是可以存放在cookie中。攻击者伪造1个post,骗取用户点击,action是目标网站,但并没有csrftoken,目标网站的验证就不能通过,就不能处理post请求。正常请求,cookie除了sessionid还有csrftoken,和网站csrftoken匹配。
一种是SF形式,一份放在session中,另一份放表单域,提交的时候验证是否一致。
另外一种是CF形式,Cookie和表单,Cookie必须加 HTTPOnly。不能被浏览器读到的Cookie,其作用跟放在 Session里的数据一样。