很多人在学习csrf的时候,书本和文章上都会写到,在a站点面嵌入一个b站点的链接,那么浏览器在请求b页面的资源时会自动带上b的cookie。
不过我觉得这些文章的内容已经有些过时了,近期在解决内部的一个csrf问题时,发现当前浏览器已经默认启用了cookie中的samesite保护机制,这种跨域的csrf想利用已经很难了。
简单来说就是服务端在返回set-cookie时,可以加上一个samesite属性,这个属性有三个值:lax/strict/none
lax:跨域的请求不会带上cookie,不过如果是从a站点跳转到b站点,这个时候会带上b的cookie。
strict:只要是跨域的请求都不会带上目标站点的cookie。
none:不做限制,但是必须配合secure属性使用,否则不生效。
这里需要注意的是,如果在set-cookie时没有设置samesite,那么默认就会采用lax方案。
本文介绍了在当前浏览器环境下,CSRF攻击的难度增加。重点讨论了SameSite属性如何影响跨域请求中的Cookie行为,包括lax、strict和none三种模式的区别。
942

被折叠的 条评论
为什么被折叠?



