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

Python基础(②④序列化和伪造Session)

在 Web 开发里,最常见的序列化格式就是 JSON 字符串

序列化 (serialization) 的本质是: 👉 把内存里的数据结构(比如 Python 的 dict、Java 的对象、Go 的 struct)转换成一种 可以存储或传输的格式

import jsondata = {"username": "alice", "age": 20}# Python dict
print(type(data), data)
# <class 'dict'> {'username': 'alice', 'age': 20}# 序列化成 JSON 字符串
json_str = json.dumps(data)
print(type(json_str), json_str)
# <class 'str'> {"username": "alice", "age": 20}

{"username": "alice", "age": 20} 在 Python 里是 dict(内存里的哈希表)
{"username": "alice", "age": 20} 变成字符串以后就是 JSON(纯文本)

序列化 ≠ JSON,JSON 只是序列化的一种方式

🔑 Flask Session 的处理流程

Session 数据存储位置(客户端存储型)

序列化 (Serialization)
Flask 会先把 Python 的 dict(比如 {"username": "alice"})转成 JSON 字符串:

{"username": "alice"}

这一步才叫“序列化”:把 Python 对象 → 字符串。

编码 (Encoding)

JSON 字符串再经过 Base64 URL 安全编码,变成一串看似随机的字符:

eyJ1c2VybmFtZSI6ImFsaWNlIn0

签名 (Signing)

Flask 用 secret_key 对上面的 Base64 数据做 HMAC 签名,得到另一段字符串:

aNpq_g.nqxDZhqbLQjD5v3zj3pKCrs9qRo

拼接 (Final Cookie)
最终的 Cookie 值是:

eyJ1c2VybmFtZSI6ImFsaWNlIn0.aNpq_g.nqxDZhqbLQjD5v3zj3pKCrs9qRo

前半部分是序列化+Base64 的数据,后半部分是签名

🔑 Django Session的处理流程

Cookie 里只存一个随机的 sessionid    服务端(数据库/缓存/文件)

用户登录成功后,Django 生成一个随机的 Session ID

这个 ID 存在 Cookie 里:

Set-Cookie: sessionid=abc123xyz; HttpOnly; Path=/

真实的用户数据(如用户名、角色、权限)存储在服务端(默认是数据库 django_session 表)

下次请求时,Django 根据 Cookie 里的 sessionid 去数据库查找对应的数据

👉 所以即使攻击者知道 SECRET_KEY,也不能直接伪造用户 Session,因为数据不在 Cookie 里,而在服务端

http://www.dtcms.com/a/424167.html

相关文章:

  • C++ 标准库排序算法 std::sort 使用详解
  • 进程间通信——环境问题
  • html做网站步骤大全泉州网站建设咨询
  • 网站备案要多长时间网站建设的功能需求分析策划书
  • 安卓基础007-第一章结束
  • join left join right join 关联问题
  • 从接口概念到客达天下系统Apifox+DeepSeek接口测试实战
  • vue 中 props 用法使用总结和示例演示
  • SymPy 绘图完全指南:从基础到高级应用
  • C语言基础入门(二)
  • ClientAbortException: java.io.IOException: Broken pipe是什么?
  • 书店网站建设个人总结惠州网页建站模板
  • 西安 网站建设 培训班常州做网站公司有哪些
  • 嵌入式系统应用--TFTLCD 显示实验 3 之内存拓展
  • TEE(可信执行环境)与REE(富执行环境):构建现代智能设备的安全基石与技术全景
  • 网站开发洲际做网站如何接单子
  • 如何查看网站推广做的好云南省玉溪市建设局官方网站
  • ui设计网站建设是什么意思erp系统有哪些功能模块
  • Python将维吾尔语从 ULY 到 UEY 的自动转换
  • Spring AI整合聊天模型DeepSeek
  • 做国外网站做什么内容好无锡市城市建设规划局网站
  • 软装设计网站推荐湖南畅想网站建设
  • 手机电影网站怎么做wordpress邮箱登录
  • 圆桌对话 | “内卷”与“出海”:中国智能网联汽车的破局之路与未来生态构想
  • 网站建设开头wordpress go
  • 门户子网站建设申请微页制作平台网站建设
  • linux拷贝命令
  • 遥感目标检测数据集汇总,覆盖城市问题/工业安全/农业健康/室内场景……
  • LeetCode 刷题【92. 反转链表 II】
  • Spring Boot 异步处理框架核心源码解析及实现原理