Flask中Session保存在客户端不安全怎么解决

落枫同学_1826

落枫同学_1826

2026-09-18

479人浏览

原创

flask默认session不安全是因为数据经base64编码后明文存于cookie,仅hmac签名防篡改不防窃读;secret_key泄露即可伪造。解法是改用服务端存储(如redis),禁用客户端session残留行为,并确保登出时同步清空服务端与客户端session。

flask中session保存在客户端不安全怎么解决

Flask默认Session为什么“不安全”

不是它天生危险,而是设计目标就不是防窥探——session数据被Base64编码后直接存进Cookie,攻击者用浏览器开发者工具就能解码第一段,看到{'user_id': 123, 'is_admin': False}这种明文。签名(HMAC)只防篡改,不防阅读;只要SECRET_KEY泄露,连伪造都只需几行Python。

强制改用服务端Session存储

最直接的解法:不让敏感数据出服务器。用flask-sessionsession存在Redis或数据库里,客户端只留一个随机session_id Cookie。

实操要点:

  • 安装扩展:pip install Flask-Session redis
  • 配置必须显式指定后端,不能只靠app.secret_keyapp.config['SESSION_TYPE'] = 'redis'
  • 禁用客户端Session的残留行为:app.config['SESSION_COOKIE_SECURE'] = True + app.config['SESSION_COOKIE_HTTPONLY'] = True
  • 启动Redis服务并确保连接可达,否则首次请求会500

登出时真正让Session失效

session.clear()只是清空字典,旧Cookie仍能被服务端解密成空会话——攻击者重放就能绕过登录检查。

Flask 3.0.2
Flask 3.0.2

Flask 3.0.2 是 Flask 的官方历史稳定版本,下载地址使用 PyPI wheel 包直链,适合指定版本安装和项目环境复现。

下载

正确登出必须两步同时发生:

  • 调用session.clear()(清服务端存储,若用了flask-session
  • 覆盖客户端Cookie,强制过期:response.set_cookie('session', '', expires=0)
  • 如果自定义了SESSION_COOKIE_NAME,替换'session'为对应值

保留客户端Session时的最低加固项

如果因架构限制必须用默认Cookie Session,至少堵住三个最大漏洞:

  • SECRET_KEY绝不能硬编码:从环境变量读取,如os.environ.get('SECRET_KEY'),且每次部署生成新密钥
  • 关闭可预测的Session字段:删掉所有session['is_admin']这类布尔标记,改用服务端查权限
  • 启用时效控制:app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=30),配合session.permanent = True

Base64不是加密,签名不是保密——这两点最容易被当成“已防护”而忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
flask框架如何搭建
flask框架如何搭建

搭建步骤:1、安装Python和Pip;2、创建虚拟环境;3、安装Flask;4、创建Flask应用;5、运行应用;6、访问应用。想了解更多flask框架的相关内容,可以阅读本专题下面的文章。

2024.06.27

2835

8

Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

2025.08.25

4204

10

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

2025.12.15

256

16

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Flask-Migrate数据库迁移文档
Flask-Migrate数据库迁移文档

共0课时 | 0人学习

Flask官方快速入门文档
Flask官方快速入门文档

共0课时 | 0人学习