高频面试-cookie, token, session

news/2024/11/25 15:21:27/

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.ppmy.cn/news/1549849.html

相关文章

使用 Python 快速完成管理系统开发:详细教程

如何使用 Python 快速完成管理系统开发:详细教程 Python 是一门功能强大且易于学习的编程语言,广泛应用于各种开发任务,包括管理系统开发。本文将详细介绍如何使用 Python 快速完成一个简单的管理系统开发,涵盖环境搭建、数据库设…

【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰

文章目录 1. Map Viewer中打开2. 场景查看器中打开3. ArcGIS中打开4. QGIS中打开5. Globalmapper中打开6. ArcGIS Earth中打开官网地址:https://www.arcgis.com/home/item.html?id=504a23373ab84536b7760c0add1e0c1c 1. Map Viewer中打开 以下展示不同底图样式的珠穆朗玛峰壮…

如何在 Ubuntu 上设置 SSH X11 转发并访问远程图形界面

1. 前言 当我们在远程服务器上运行需要图形界面的程序时,通常需要使用 SSH 来连接服务器并通过 X11 转发将远程的图形界面显示到本地机器。本文将详细介绍如何使用 SSH 命令和相关的配置,来通过 X11 转发在 Ubuntu 上远程访问服务器的图形界面。 2. SS…

01.Golang 源码目录结构

Golang 源码目录结构 目录总览 ├── README.md #说明文件 ├── SECURITY.md #安全政策 ├── api #Golang每个版本的功能列表归档文件 ├── doc #Golang文档说明,和官方文档相同,可以离线查看 ├── lib #像是库文档模板,里面列举了…

mysql-分析并解决可重复读隔离级别发生的删除幻读问题

在 MySQL 的 InnoDB 存储引擎中,快照读和当前读的行为会影响事务的一致性。让我们详细分析一下隔离级别味可重复读的情况下如何解决删除带来的幻读。 场景描述 假设有一个表 orders,其中包含以下数据: 事务 A 执行快照读 START TRANSACTION…

docker-compose 安装 pgsql (postgres)

docker-compose-pg.yml 文件内容 version: 3 services:iepms-gateway:image: postgres:14.13container_name: postgresql-14.13restart: alwaysprivileged: trueenvironment:- POSTGRES_PASSWORD: test2024ports:- 15432:5432volumes:- /home/iepms/data/pgsql/data:/var/lib/…

(笔记,自己可见_1)简单了解ZYNQ

1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…

前端知识点---箭头函数(javascript)

文章目录 箭头函数(javascript)箭头函数省略小括号省略大括号箭头函数与没有argumentsthis的指向问题 箭头函数(javascript) 箭头函数 引子: <input type"text" id"txt1" ><input type"button" id"btn" value"测试&…