安全角度浅谈cookie、session、token

本文从安全角度探讨了cookie、session和token在Web应用中的作用和安全性。文章介绍了session的会话概念,指出HTTP协议无状态性带来的问题,以及cookie如何解决这一问题。接着,详细阐述了cookie的工作原理,包括服务器与客户端交互创建cookie的过程,并通过Wireshark抓包分析了cookie的生成。文章还讨论了cookie的优缺点,包括安全隐患和管理机制。最后,文章引入了token的概念,分析了其在安全性方面的优势,以及不同应用场景下token的有效性和管理策略。
摘要由CSDN通过智能技术生成

前言:
为什么要研究cookie、session和token呢?
我当前已经学习完了sql注入和部分xss攻击,其中都遇到了使用和获取cookie,不把cookie理解了,就无法完全理解黑客获取它的原因。同时深刻理解了这三者之间的关系,对于预防也有很大的指导意义。完全根据自己的理解写的,如果有错误请大神指点(说实话,感觉自己理解的不是特别的深刻)

session

session就是我们常说的会话,在iso模型中属于会话层,在tcp/ip中属于应用层,服务器通过什么来确定session呢?就是我们常说的五元组(sip,dip,sport,dport and protocol),对服务器而言对外提供的dip和dport及protocol是固定的,但是客户端的sip不会相同,及时sip相同了sport也绝对不会相同,因此五元组保证了session的唯一性。
再来说http协议,http协议是一个无状态协议,其无法是服务器记录下用户的状态,白话:当user每发送一个http请求时,服务器端都会建立一个session,当有多台服务器时,可能会出现同一用户访问到不同的服务器,如果应用需要关联同一个用户的不同操作,服务器就需要同步数据该用户的数据,最后导致每个用户的信息在每台服务器上都需要保持一份历史信息,对于珍贵的服务器资源将浪费极大。而且服务器为了证明是同一个用户,还要求用户不停的输入用户名和密码,用户得多恼火哈,并且应用程序还要调用数据库与当前输入的用户名和密码进行匹配计算,sql服务器需要的处理性能也是无法想象的。
此时cookie为解决这个问题应运而生,1993年3月(阿里巴巴1999年才成的)Netscape(网景)公司的前雇员卢·蒙特利发明了cookie,当时其为MCI公司开发电子商务应用程序,MCI不希望其服务器必须保留部分事务状态,这导致他们要求网景公司找到一种方法来将该状态存储在每个用户的计算机中, Cookie为可靠地实施虚拟购物车的问题提供了解决方案。
想象一下如果没有cookie的出现,某宝需要多少台服务器呀。

cookie

上面说了服务器需要关联用户的历史操作,并且通过客户端保存一些有效信息,来降低服务器端的存储压力,cookie的出现解决了这个问题,那么cookie是什么呢?其实cookie就是当用户第一次向服务器发送请求的时,服务器创建一个session,并将这个session命名为sessionID,然后服务器将这个sessionID发送给用户,以后服务器和user的交互就用这个sessionID作为识别不同用户的唯一标识。
一个完整的cookie和session应用过程:
在这里插入图片描述有个问题没有得到解决,当同一用户访问到不同的web服务器了怎么办?
这个问题交个负载均衡去解决(我能想到的,不对请大神批评指正),负载均衡会维护一张sessionID与服务器关联的表格,这样就保证了在cookie失效之前,该用户始终访问的是同一台服务器。
再从抓包看一下服务器和客户端产生cookie的过程:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值