通过对话了解cookie session与token的用途和区别

news2025/1/24 11:48:56

1 先来了解cookie与localstorage

cookie与localstorage

1.1 http的无状态

用户: 我想看csdn我有多少粉丝了(http请求)

服务器:你是?请告诉我你的名字和密码,我确认你是谁

用户:发起登录请求 admin 123456

服务器:ok,登录成功

用户:我要看我cdsn有多少粉丝,发起请求

服务器:请告诉我你的名字和密码。

用户:?

旁白这就是http的无状态的特征,不会记得之前的请求内容,所以不会记得你已经登录过,这就是cookie的由来,每次http请求都会携带cookie中的内容

用户: 我已经将之后的http请求设置cookie为username:admin password,现在每次请求都会自动带上cookie里面的信息,发起请求

服务器:好的,用户admin,已经帮你跳转到对应页面

黑客:好啊,我只要拿到存在用户浏览器里面的cookie就能知道密码了。

旁白 存在浏览器端的cookie相较而言更容易被获取,不安全,于是有了session

session

旁白session就是会话的意思,将某些重要内容放在服务器端,保证安全性

用户: 发起登录请求

服务器: 我将你发过来的用户名和密码存在我这(session)了,给你一个sessionId,你放在cookie中

用户:cookie是存在浏览器端的,所以我能看到sessionId是什么,但是我不能看到我登录的密码了,这样好。现在我想要看粉丝数,发起http请求,http请求自带cookie,也就是sessionId

服务器: 我从sessionId找到了我之前存放的token,知道你是谁了,现在就给你对应的粉丝数量的信息。

黑客:我又来了,我获取到cookie里面的sessionId了,我可以伪装成你,但是我获取不到密码了, 密码在服务器那里。

很多用户: 我登录了。

服务器: 太多用户登录了,有点占用内存,而且有的用户很久都没有使用过了,存在我这太浪费了,所以我要设置一个时间,哪个session太久没有使用过了,就给清除掉。一直在使用session就一直存在。

用户:怎么速度变慢了

服务器: 查找session需要时间的。

旁白session的缺点就是占用服务器内存和查找时的损耗,而且被人拿到之后能够被人用很长一段时间

token

服务器: 不要再把登录状态存在我这了,我们用token吧

用户:登录!

服务器:将用户名和密码等加密,再加上截止时间,我的数字签名等,再加密成字符串,放在浏览器的cookie里面

用户:token已经存放在我的cookie里面了,发起请求

服务器:解密cookie中的token,我知道你是谁了。

黑客:我拿到cookie里的token了,但是很快就用不了了,它的截止时间不会随着你使用而变化,就算一直用也会失效。

https

用户:我的cookie这么好拿的?怎么这么不安全。

网站:基本上是拿不到的,而且技术太成熟了,比如https技术,现在用户你和服务器的通信都是加密的,就算黑客拿到也很难解密,更别说基本拿不到,除非我身上有明显漏洞。

用户:这么说其实我吧用户名存在cookie里面也没啥?

网站:只要我够完善,就很难在网络上获取,但是容易在网络之外获取,比如网吧里,而且被获取了后果很严重哦。

用户: 好吧,还是token好用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享几个国内免费的ChatGPT镜像网址(亲测有效)

最近由于ChatGPT的爆火也让很多小伙伴想去感受一下ChatGPT的魅力,那么今天就分享几个ChatGPT国内的镜像网址,大家可以直接使用!记得点赞收藏一下呦! 1、AQ Bot,网址:点我 https://su.askaiw.com/aq 缺点&…

搭建CDH流程记录

搭建CDH流程记录 如何搭建本地yum源 1.配置yum源这里使用 阿里源 http://mirrors.aliyun.com/repo/Centos-7.repo wget http://mirrors.aliyun.com/repo/Centos-7.repo2.安装http软件 yum install httpd -y3.配置httpd.conf vi /etc/httpd/conf/httpd.conf在 AddType appli…

酒店行业开启“狂飙”,尚美数智稳步领跑

文|智能相对论 作者|范柔丝 在消费行业迅速复苏的浪潮下,无论从销量还是数量来看,酒旅行业蛰伏三年后,终于开启了业绩狂飙。 从数量来看,企查查数据显示,截至目前,我国现存酒店相关企业233.5万家&#x…

Grafana链接跳转与值传递,把表格变量值从一个dashboard传递给另一个dashboard

文章目录 1. 创建两个空白 Dashboard 用于实验2. dash_1:创建跳转用的表格2. dash_2:配置接收数据的变量 Variables3. 测试跳转4. 通过跳转的变量传递方法总结 这里,我们一步步的来,通过配置一个页面跳转的效果,把一个…

二结(4.18)项目进度

今天学长上了多线程的课程,内容挺广泛的,部分也需要实际运用到项目中来,但我的登录、注册实现还没区分开服务端和客户端(仅在同一项目里实现) --------------------------------------------------------------------…

【分布式系统】分布式系统架构的冰与火

什么是分布式系统 分布式系统(distributed system)是建立在网络之上的软件系统。 以上是摘自百度百科的解释,不可否则,分布式系统的基础是网络、计算、存储。比如常见的一个Web单体系统,其实也是一个分布式系统&#x…

Android监听消息(二)——电话及短信监听

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为2747字,预计阅读6分钟 前言 前面一篇《Android监听消息(一)——应用消息捕获》我们使用NotificationListenerService实现了应用的消息监听,但是电话和短信是…

【花雕学AI】爆款ChatGPT的核心算法和技术逻辑到底是什么?

一、ChatGPT是一种基于GPT模型的聊天机器人 由OpenAI研究中心开发,于2022年11月30日发布。它可以根据用户的输入,生成自然、流畅、有趣的对话回复。它的技术逻辑主要是利用大规模的预训练语言模型(LLM),通过Transforme…

总结823

学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 学习内容: 暴力英语:早上1.5小时背单词,背了两篇文章,之后抄写5篇文章。晚上做了一道长难句。 …

CAN-FD协议

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录 CAN-FD协议**CAN-FD协议需要什么?**CAN-FD 协议的属性CAN-FD 协议中的安全性 OSI 层中的 CAN-FD**CAN-FD物理层设计**CAN-FD 数据链路层数据链路层…

【2023】cookie是什么?有什么用?一篇文章彻底搞懂cookie

一个不大不小的问题 假设服务器有一个接口,通过请求这个接口,可以添加一个管理员 但是,不是任何人都有权力做这种操作的 那么服务器如何知道请求接口的人是有权力的呢? 答案是:只有登录过的管理员才能做这种操作 …

一天掌握C51单片机基础1-计算机数值与MCS51单片机

目录 简介计算机的数值表示源码反码补码 MCS51 单片机型号与构成存储结构外部引脚与总线接口并行 IO 口工作原理工作周期 简介 本笔记参考B站高宏亮老师的教学视频:点击观看 计算机的数值表示 源码 正数:首位 0,其余七位表示实际数值 负数&…

Java内存模型JMM

大厂面试题? 你知道什么是java内存模型JMM吗? JMM和Volatile它们两个之间的关系? JMM有哪些特性和他的三大特性是什么? 为什么要有JMM,他为什么出现?作用和功能是什么? happens-before先行发…

如何用jmeter+ant+jenkins搭建一个接口自动化测试框架?

目录 前言 一、什么是Jmeter? 二、什么是Ant? 三、什么是Jenkins? 四、如何构建一个JmeterAntJenkins的接口自动化测试框架? 五、JmeterAntJenkins接口自动化测试框架的优势和特点 六、总结 前言 Jmeter是一款功能强大的开…

陪诊小程序开发|陪诊软件开发功能特色

为了提升就医的服务质量,人们对于医疗服务的需求也在不断提高。这几年随着生活水平和医疗水平的提升,陪诊服务越来越受到人们的重视和青睐,越来越多的人开始意识到,陪伴和关爱在疾病治疗过程中的重要性,为了更好的规划…

Python数据结构与算法-贪心算法(一)

一、贪心算法 1、定义 贪心算法(贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所作出的是在某种意义上的局部最优解。 贪心算法并不保证会得到最优解,但是在某些…

debian 10 安装prometheus 2.37.6 配置rc.local自启动

debian 10 安装prometheus 2.37.6 配置rc.local自启动 1、下载安装包2、安装3、访问普罗米修斯4、加入开机自启动4.1、配置rc-local.service4.2、添加自定义启动命令4.3、查看rc-local.service 1、下载安装包 https://prometheus.io/download/ wget -c https://github.com/pro…

人工智能前沿——「小海带」超全视觉注意力机制资源分享(附下载链接)

📚📚 人工智能 | 计算机视觉 —— 致力于目标检测领域科研Tricks改进与推荐 | 主要包括主干网络改进、轻量化网络、注意力机制、检测头部改进、空间金字塔池化、损失函数及NMS改进、ICCV/CVPR/ECCV视觉顶会创新点改进、各类数据集资源分享以及算法训练相…

Serge让你在本地运行LLaMa模型

什么是 Serge ? Serge 是基于 llama.cpp 运行 Alpaca 模型的聊天界面。完全自托管,不需要 API 密钥。适合 4GB RAM 并且能在 CPU 上运行。 什么是 LLaMA ? LLaMA 是一种机器学习算法,全称为 Laplacian Regularized Least Squares for Multip…

windows安装mysql详解

目录 1. mysql下载2. 添加环境变量3. 添加配置文件4. 初始化 data 目录5. 安装启动服务6. 修改密码 1. mysql下载 mysql官网:https://www.mysql.com/downloads/ MySQL Community Server:MySQL数据库的服务端,MySQL的核心,只下载它…