【总结】session & cookie的共同点以及优缺点

1、共同点
    
    都是为了记录用户的状态。

2、不同点:
    ①在存储方面:Cookie保存在客户端浏览器中,而Session保存在服务器上。Cookie中只能保管ASCII字符串,而Session中能够存取任何类型的数据。
    ②在生命周期方面:cookie是通过maxAge设置过期时间。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。Session在用户第一次访问服务器的时候自动创建。Session生成后, 只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。(有点类似缓存控制算法LRU) 为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。
    ③依赖方面:Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。并且在识别是否是同一浏览器方面:服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,Session依据该Cookie来识别是否为同一用户。
    ④隐私策略方面:Cookie存储在客户端阅读器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修正Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。
    ⑤跨域支持上的不同:Cookie支持跨域名访问,Session仅在他所在的域名内有效。
3、优点:
    一、Cookie
        ①极高的扩展性和可用性。
        ②可配置到期规则 Cookie 可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在,这取决于客户端的到期规则。
        ③不需要使用大量服务器资源,Cookie 存储在客户端并在发送后由服务器读取
        ④简单性 Cookie 是一种基于文本的轻量结构,包含简单的键值对,结构简单
    二、Session
        ①易于读写的特性
        ②易于站点的用户化

4、缺点:
    一、Cookie
        ①Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉
        ②潜在的安全风险 Cookie 可能会被篡改
    二、Session
        ①依托性。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量
        ②session会在一定时间内保存在服务器上。当访问增多,会比较占用较大的服务器性能
 5、一般的攻击方式
    一、Cookie
        ①直接访问Cookie文件查找想要的机密信息;
        ②在客户端和服务端进行Cookie信息传递时候进行截取,进而冒充合法用户进行操作;
        ③. 攻击者修改Cookie信息,所以在服务端接收到客户端获取的Cookie信息的时候,就会对攻击者伪造过的Cookie信息进行操作
        解决方案:
            不要在Cookie中保存敏感信息;
            不要在Cookie中保存没有经过加密的或者容易被解密的敏感信息;
            对从客户端取得的Cookie信息进行严格校验;
            使用SSL/TLS来传递Cookie信息。
        
    二、Session
        ①会话劫持(通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法)
            解决方案: 使用User-Agent检测请求的一致性;设置HttpOnly,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击;关闭透明化Session ID;更改Session名称
        ②会话固定(诱骗受害者使用攻击者指定的会话标识(Session ID)的攻击手段)
            解决方案:用户登录时生成新的Session ID;以及上诉的一些解决方案
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值