【Linux】Cookie与Session:Web用户状态管理的双刃剑

【Linux】Cookie与Session:Web用户状态管理的双刃剑

目录

1、认识cookie

1.1.cookie的定义

1.2.工作原理

1.3.cookie的分类:

2.认识cookie

2.1.cookie基本格式:

2.2.Cookie 的生命周期:

2.3.单独使用 Cookie,有什么问题?

3.HTTP session

3.1.session的定义

3.2.session工作原理

3.3.session安全性:

3.4.session的超时和失效:

总结:

1、认识cookie

1.1.cookie的定义

HTTP Cookie(也称为 Web Cookie、浏览器 Cookie 或简称 Cookie)是服务器发送到用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。

cookie的原意是曲奇,一块小的饼干,也就对应着在网络里表示一小块数据。

1.2.工作原理

  • 当用户第一次访问网站时,服务器会在响应的 HTTP 头中设置 Set-Cookie字段,用于发送 Cookie 到用户的浏览器。
  • 浏览器在接收到 Cookie 后,会将其保存在本地(通常是按照域名进行存储)。
  • 在之后的请求中,浏览器会自动在 HTTP 请求头中携带 Cookie 字段,将之前保存的 Cookie 信息发送给服务器

 cookie是储存在浏览器上的,当浏览器进行登录操作发送请求时,服务器会进行cookie的处理。然后通过应答返回给浏览器,下一次浏览器再次申请时,就可以带着这个cookie进行请求,服务器就可以直接识别账号等信息了!

也就是说有了cookie的存在,我们不用每次登录B站都要输入自己的账号密码,网站能自动识别用户,因为将用户的数据存储在了cookie当中!还可以标识用户状态,对用户的登录状态进行保持,方便随时验证用户身份,还能识别是否是VIP会员、普通会员还是游客!

1.3.cookie的分类:

  • 会话 Cookie(Session Cookie):存储在内存当中,在浏览器关闭时失效。
  • 持久 Cookie(Persistent Cookie):存储在文件当中,带有明确的过期日期或持续时间,可以跨多个浏览器会话存在。

如果 cookie 是一个持久性的 cookie,那么它其实就是浏览器相关的,特定目录下的一个文件。但直接查看这些文件可能会看到乱码或无法读取的内容,因为 cookie 文件通常以二进制或 sqlite 格式存储。一般我们查看,直接在浏览器对应的选项中直接查看即可。

比如在ZEEKLOG当中的cookie数据:
 

安全性:
由于 Cookie 是存储在客户端的,因此存在被篡改或窃取的风险!

用途:

  • 用户认证和会话管理(最重要)
  • 跟踪用户行为
  • 缓存用户偏好等

2.认识cookie

  • HTTP 存在一个报头选项:Set-Cookie, 可以用来进行给浏览器设置 Cookie值。
  • 在 HTTP 响应头中添加,客户端(如浏览器)获取并自行设置并保存Cookie。

2.1.cookie基本格式:

Set-Cookie: <name>=<value>
其中 <name> 是 Cookie 的名称,<value> 是 Cookie 的值。

完整的 Set-Cookie 示例:

Set-Cookie: username=peter; expires=Thu, 18 Dec 2024 12:00:00
UTC; path=/; domain=.example.com; secure; HttpOnly
  • name=value:指定Cookie的名称和值。这是必需的。
  • expires=date:指定Cookie的过期时间。如果未设置,Cookie默认在浏览器关闭时过期。
  • domain=domain:指定Cookie的有效域。控制哪些域可以访问该Cookie。
  • path=path:指定Cookie的有效路径。控制哪些路径下的页面可以访问该Cookie。
  • secure:如果设置了该选项,Cookie只能通过HTTPS协议传输,不能通过 HTTP 协议发送,增加安全性。
  • httponly:如果设置了该选项,Cookie将无法通过JavaScript脚本访问,有助于防止跨站脚本攻击(XSS)

注意事项:

  • 每个 Cookie 属性都以分号(;)和空格( )分隔。
  • 名称和值之间使用等号(=)分隔。
  • 如果 Cookie 的名称或值包含特殊字符(如空格、分号、逗号等),则需要进行 URL 编码。

2.2.Cookie 的生命周期:

  • 如果设置了 expires 属性,则 Cookie 将在指定的日期/时间后过期。
  • 如果没有设置 expires 属性,则 Cookie 默认为会话 Cookie,即当浏览器关闭时过期。

2.3.单独使用 Cookie,有什么问题?

  • 我们写入的是测试数据,如果写入的是用户的私密数据呢?比如,用户名密码,浏览痕迹等。
  • 本质问题在于这些用户私密数据在浏览器(用户端)保存,非常容易被人盗取,更重要的是,除了被盗取,还有就是用户私密数据也就泄漏了。

非常的不安全!这就需要session出马了!

3.HTTP session

3.1.session的定义

HTTP Session 是服务器用来跟踪用户与服务器交互期间用户状态的机制。由于 HTTP协议是无状态的(每个请求都是独立的),因此服务器需要通过 Session 来记住用户的信息。

  • 由服务器为每个用户会话创建的临时对象。
  • 存储了与特定用户会话相关的信息,包括用户身份验证和会话状态。

3.2.session工作原理

  • 当用户首次访问网站时,服务器会为用户创建一个唯一的 Session ID,并通过Cookie 将其发送到客户端。
  • 客户端在之后的请求中会携带这个 Session ID,服务器通过 Session ID 来识别用户,从而获取用户的会话信息。
  • 服务器通常会将 Session 信息存储在内存、数据库或缓存中

3.3.session安全性:

与 Cookie 相似,由于 Session ID 是在客户端和服务器之间传递的,因此也存在被窃取的风险!
但是一般虽然 Cookie 被盗取了,但是用户只泄漏了一个 Session ID,私密信息暂时没有被泄露的风险。

可以通过 HTTPS 和设置合适的 Cookie 属性(如 HttpOnly 和 Secure)来增强安
全性。

3.4.session的超时和失效:

Session 可以设置超时时间,当超过这个时间后,Session 会自动失效。
服务器也可以主动使 Session 失效,例如当用户登出时。

session是相对安全的,sessionid也有可能被盗取!

session是服务器创建,服务器管理的,所以当服务器辨别到sessionid有被盗取的风险,只要让sessionid失效就可以了。

那么服务器是怎么知道这个client对应的session是一个非法的呢?需要跟业务结合!

比如QQ在异地登录的时候,腾讯的服务端会识别到,需要我们重新扫码验证才能异地登录,这里的异地登录就是可能潜在被盗用的风险。

总结:

HTTP Cookie 和 Session 都是用于在 Web 应用中跟踪用户状态的机制。Cookie 是存储在客户端的,而 Session 是存储在服务器端的。它们各有优缺点,通常在实际应用中会结合使用,以达到最佳的用户体验和安全性。

但是session和cookie都不是绝对安全的!session只是比cookie相对安全!

所以我们要认识到,在网络世界里,几乎没有东西是绝对安全的。

Read more

Techub News 專訪高鋒集團合夥人、Web3Labs行政總裁黃俊瑯:以資本與生態,賦能傳統企業Web3轉型

本次專訪聚焦高鋒集團如何透過資本投入與生態資源,助力傳統企業邁向Web3轉型。從近期戰略參與上市公司德祥地產的配股出發,高鋒集團合夥人、Web3Labs CEO黃俊瑯(Caspar)分享了集團的戰略思考、核心優勢、執行機制,以及對傳統企業轉型痛點的觀察與未來願景。這場對話展現了高鋒集團與Web3Labs在「實物資產代幣化」(RWA)等領域的創新實踐,以及他們致力成為傳統企業數字化轉型可靠夥伴的定位。 戰略投資德祥地產:搭建Web3與傳統實體經濟的橋樑 Techub News:Caspar您好。我們注意到高鋒集團近期戰略性參與了上市公司德祥地產的配股。這在市場看來頗為創新,能否請您談談這次投資背後的戰略思考? 黃俊瑯:這次對德祥地產的投資,對我們而言,遠超一次單純的財務投資。它是一個清晰的信號,也是我們戰略的關鍵落子。高鋒集團的核心使命之一,是搭建Web3前沿科技與傳統實體經濟之間的橋樑。德祥擁有紮實的房地產業務與實物資產,這正是探索「實物資產代幣化」(RWA)最具潛力的領域。我們這次參與,是協助其啟動轉型的第一步,未來將結合我們的專業生態,共同探索如何利用區塊鏈技術提升資產流

AI绘画:解锁商业设计新宇宙(6/10)

AI绘画:解锁商业设计新宇宙(6/10)

1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffusion 等的出现,更是让这一技术走进了大众的视野,引发了广泛的关注和讨论。这些工具不仅操作简便,而且能够在短时间内生成多种风格的绘画作品,大大降低了绘画创作的门槛。 AI 绘画在商业领域展现出了巨大的潜力。据相关数据显示,2021 年中国 AI 绘画市场规模仅为 0.1 亿元,而预计到 2026 年将激增至 154.66 亿元 ,年复合增长率高达 244.1%。这一迅猛的增长趋势,反映出 AI 绘画在商业应用中的广阔前景。越来越多的企业开始认识到 AI 绘画的价值,并将其应用到广告、插画、

F076 中医中药知识智能问答与图谱构建研究系统 Vue+Flask+Neo4j

F076 中医中药知识智能问答与图谱构建研究系统 Vue+Flask+Neo4j

文章结尾部分有ZEEKLOG官方提供的学长 联系方式名片 关注B站,私信获取! 麦麦大数据 编号: F076 视频 <<待上传>> 1 系统简介 系统简介:本系统是一个基于Vue+Flask+Neo4j+MySQL构建的《中医中药知识智能问答与图谱构建研究系统》。其核心围绕中医证型、中药信息的数字化管理、智能问答及知识图谱的构建与多维度可视化分析能力展开。 本系统主要面向用户提供中医证型查询、中药推荐、病症知识智能问答等功能,同时面向管理员提供数据分析、用户管理、基础数据维护等系统级管理功能。其关键技术栈涵盖前后端分离架构、图数据库Neo4j、传统关系型数据库MySQL,结合多种文本挖掘算法(如TF-IDF、TextRank、YAKE)完成对数据内容的智能分析。 主要功能模块包括:用户登录与注册、中医证型管理、中药信息展示、知识图谱可视化、智能问答、病症知识推荐、用户画像分析、系统数据管理、个人信息设置等。 2 功能设计

无人机数据集汇总无人机航拍各个方面检测分割数据集合集

本数据集集合了面向无人机视觉任务的大规模、多场景、多目标标注数据资源,涵盖了地理环境、智慧城市、基础设施巡检、农业生产、公共安全与灾害监测等多个关键领域。数据主要以两种主流格式提供:适用于目标检测的VOC/YOLO格式与适用于像素级语义分割的LabelMe格式,为算法开发与模型训练提供了高度结构化的标注支持。 在地理与农业监测方面,包含田地、道路、森林、水体等地理要素的分割数据集,以及作物病害、杂草识别、农田农机、牛羊牲畜等农业目标的检测数据,支持精准农业与生态研究。智慧城市与交通领域提供了丰富的城市街道场景数据,涵盖行人、车辆、交通标志、占道经营、消防通道、广告牌等目标的检测与分割,助力城市智能化管理。基础设施巡检是另一重点,覆盖电力线、光伏板、桥梁、铁路、风力发电机等设备的缺陷与异常检测,以及工地车辆、施工人员、物料垃圾的识别,满足工业自动化巡检需求。在灾害与安全监控中,包含滑坡、洪水、火灾烟雾、河道垃圾、违规建筑等应急场景的检测与分割数据,同时提供了溺水人员、海上救援、军事目标等特殊任务的专项数据集。此外,