当前位置: 首页 > article >正文

高频面试-cookie, token, session

1.  cookie:

第一次发送到服务端,服务端返回cookie到客户端,客户端以后每次请求就会带着这个cookie,

使用cookie的缺陷:

使用cookie来保持登录状态是一种常见的会话管理方式,它通过在客户端存储用户信息来实现用户的持续认证。然而,这种方式也存在一定的缺陷和风险,以下是一些主要的缺陷:

  1. 安全性问题:Cookie中的信息可能会被截获或篡改。如果攻击者能够访问到用户的cookie文件,他们可能会窃取用户的登录凭证,从而冒充合法用户进行操作。此外,如果cookie未设置HttpOnly属性,那么它们可能通过JavaScript被访问,增加了XSS(跨站脚本)攻击的风险。

  2. 隐私泄露风险:Cookie中的数据可能会被未经授权的第三方获取,尤其是在公共网络环境下,如网吧、图书馆等地方登录时,其他人可能会利用网络监听工具获取cookie中的敏感信息。

  3. 浏览器兼容性问题:不同的浏览器对cookie的支持可能存在差异,这可能导致某些用户在使用特定浏览器时无法正常使用基于cookie的登录状态保持机制。

  4. 跨域问题:当应用部署在多个域名下时,cookie的跨域共享可能会受到限制,这需要通过额外的配置来实现跨域cookie的共享,增加了系统的复杂性。

  5. 存储限制:每个站点最多只能保存20个cookie,且每个cookie的大小不能超过4KB,这限制了可以在cookie中存储的信息量。

  6. 用户体验问题:用户可能会因为各种原因(如清理浏览器缓存、使用隐私模式等)导致cookie丢失,从而需要重新登录,影响用户体验。

  7. 法律合规问题:在某些国家和地区,对cookie的使用有严格的法律法规要求,企业需要遵守这些规定,否则可能会面临法律风险。

综上所述,虽然使用cookie保持登录状态是一种简单易用的方法,但也存在诸多缺陷和风险。为了提高安全性和用户体验,开发者可以考虑采用其他技术手段,如Token机制,或者结合多种方法来实现更加安全和可靠的登录状态保持。

2. session:

相比cookie,用户信息是在服务端,高并发的场景下,服务端需要存储大量的session信息,占用空间比较大,一般sessionId是可以被获取到的。

拓展性:分布式场景下,两台服务器,其中一台保持了用户信息,当用户再请求时,分发到另一台服务器,这台没有用户信息,所以就不好。

3. token:

服务端根据一定的规则生成token,服务器会根据token,根据规则进行鉴权。


http://www.kler.cn/a/402768.html

相关文章:

  • C0034.在Ubuntu中安装的Qt路径
  • [SUCTF2019]SignIn
  • 基于之前的秒杀功能的优化(包括Sentinel在SpringBoot中的简单应用)
  • 瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇
  • springboot购物推荐网站的设计与实现(代码+数据库+LW)
  • 【模块一】kubernetes容器编排进阶实战之pod生命周期、探针简介、类型及示例
  • Feed流系统重构:架构篇
  • 力扣整理版八:回溯算法(待更新)
  • 3C产品说明书电子化转变:用户体验、环保与商业机遇的共赢
  • 使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
  • 【JAVA】Java基础—面向对象编程:常用API与数据结构—集合框架(List、Set、Map等)
  • 【Leecode】Leecode刷题之路第56天之合并区间
  • git创建远程仓库,以gitee码云为例GitHub同理
  • Go 1.23 is released(翻译)
  • c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
  • pcap_set_timeout()函数
  • 文件 IO:高效读取文件的一些注意事项
  • SQL面试题——复杂窗口定义
  • 【机器学习chp5】线性回归
  • 【Python】30个Python爬虫的实战项目!!!(附源码)
  • 蓝牙电话-如何自动切换手机SIM卡(预研方向)
  • 985研一学习日记 - 2024.11.17
  • Map接口的特点
  • 使用 Postman 设置 Bearer Token 进行身份验证
  • 优化算法:粒子群算法
  • AI编程入门指南002:API、数据库和应用部署