Session、Cookie、Token和CSRF

作者: 但丁_b850 | 来源:发表于2020-06-23 01:36 被阅读0次

            CSRF是当A网站的cookie依然有效的时候,用户访问了恶意网站B,客户端就加载了网站B的恶意代码,这个代码使你的浏览器偷偷访问A网站并借用你的身份执行恶意操作。为什么能借用你的身份呢?因为浏览器在访问对应的网站的时候会找对应网站的Cookie发送过去,Cookie里藏着你在对应网站的身份信息,没防备的话,你有这个Cookie,那你就是这个人。就和现在用会员卡验证身份一样,我搞到了你的会员卡,我就可以去那家店用你的账户花你的钱了。

           

            Cookie这张会员卡里藏着用户的各种信息,我偷摸搞到了这卡,虽然我不知道里面的没用,但我依然可以用它,这就是CSRF

            Session也是张会员卡,不过比起Cookie来说,它只有卡号(SessionID),所有信息存储在服务器里,SessionID一般放在Cookie或URL中,如果放Cookie里嘛,依然可以被CSRF(可以防的哈)。

            用户不满了:不去你这店了,怎么我账户老少钱,我什么都没买啊钱就没了。于是,会员卡升级了,你拿卡过来,还要说密码(Token令牌)。Token是防csrf的,我们知道csrf是借用了用户的cookie,而且攻击者不知道cookie的内容,而Token不在Cookie里,它由对应网站的js文件生成,结合了用户的个人信息和时间戳等加密生成,攻击者的网站不知道到底是多少,即使有js源码也不能得到对应的Token。我拿到了会员卡,但不知道密码,那还怎么用?Token对应的字符串也不简单,靠猜就算了。

            有的博客说Token放在cookie中,发送到服务器进行验证。嗯⊙∀⊙!???在cookie中还怎么防csrf?有些cookie中的确也放了token,但它同时在cookie外也有一份,到了网站以后,两个一比较,一样就通过测试。我们知道,攻击者不能通过csrf得知用户cookie具体内容,也就是说,即使我拿到了会员卡,即使卡里存着密码,我也不知道密码是多少,输密码的时候我依然不知道是啥。相比起存在服务器,这样做还节约了服务器资源,反正存哪都不知道内容是什么。

    相关文章

      网友评论

        本文标题:Session、Cookie、Token和CSRF

        本文链接:https://www.haomeiwen.com/subject/tutcfktx.html