采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
4-2 演示的时候,为什么csrf页面可以拿到用户的登录态?用户登录后,再打开csrf页面刷新一下,csrf页面是如何拿到userid的?不同页面可以共享cookie么?
你是指的4分26秒左右,在http请求中看到的userId=1吗?
这里其实要看怎么理解“获得”或者“拿到”这个概念。一般来说,我们说能获得userId,是指可以通过编程的方式取到userId的值。比如csrf页面可以获得userId,是指csrf页面中可以通过js取到userId的值。
在这个例子中,csrf的页面其实是无法获得userId的值的,也就是没有办法通过js读取到userId这个值。要不然就违反了cookie的同源策略。
这个视频中演示的请求是从csrf页面发起的,但是是浏览器直接请求新闻评论接口的,因为请求的是新闻网站,所以会带上新闻网站的cookie,所以这个请求是会带上userId=1的cookie的。但是,在这个请求的全过程中,csrf页面是无法接触到cookie或者userId的值的。
这正是csrf攻击最精妙的地方,它利用的是“用户自己访问网站带上的cookie”,这个过程是合法的,它非法的地方在于,用户是在自己不知道的情况下访问网站的,也就是用户不知情。
谢谢老师回复这么多,我的理解是:第一次用户登录页面后,后台会set('userId', user.id), 下次请求的话,request才会带上cookie字段里才有userId=1吧。正如你说的,那这个cookie也应该属于新闻网站的页面。那么在第一次打开那个csrf页面的时候,它是要访问新闻评论接口,但是它的request里的cookie字段是怎么会显示userid的?不知道我哪里理解错了
非常感谢!
你的表述中有一个地方理解错了,不是csrf的页面访问的评论接口,是用户(浏览器)访问的。用户访问一个网站的接口,当然要带上cookie了(除非用我们后面说的方案强制要求不允许带)。
登录后可查看更多问答,登录/注册
提高每一行代码安全系数,突破前后端开发Web安全弱项
510 5
1.2k 5
1.0k 5
2.0k 4
1.1k 4