Flask开启Debug模式

Flask开启Debug模式

  • [1. 漏洞原理](#1. 漏洞原理)
  • [2. 漏洞危害](#2. 漏洞危害)
  • [3. 漏洞修复](#3. 漏洞修复)

1. 漏洞原理

在 Flask 中:

python 复制代码
app.run(debug=True)
# 或
FLASK_ENV=development
FLASK_DEBUG=1

会启用 Werkzeug Debugger,其核心功能是:自动重载代码,显示完整异常堆栈,并且会提供一个交互式 Python 控制台(Console)

一般来讲,在生产环境中,一旦可被访问,等同于远程代码执行(RCE)

想要弹出debug页面,需要网站本身抛出一个未被捕获的异常,高版本的 Flask 有一个 PIN 来保护 Console 页面,防止任意代码执行,但是这个 PIN 生成的算法相对固定,可以被破解

2. 漏洞危害

Console 可能导致RCE,即使无法实现RCE,也会导致信息泄漏:

  • 服务器绝对路径
  • 环境变量
  • 数据库连接字符串
  • API Key / Token
  • Flask SECRET_KEY
  • 等等

漏洞实际的危害根据可利用的程度来定

3. 漏洞修复

禁用 debug 模式:

python 复制代码
app.run(debug=False)

或者:

bash 复制代码
export FLASK_ENV=production
相关推荐
SomeB1oody31 分钟前
【RustyML入门】6.0. 数学工具
开发语言·后端·机器学习·rust·教程
IT_陈寒1 小时前
为什么我的JavaScript闭包总是漏掉那个变量?
前端·人工智能·后端
Fnetlink12 小时前
FNET 云网安 260819
网络·人工智能·安全·网络安全
用户8356290780512 小时前
如何使用 Python 将 PowerPoint 转换为 PDF 文档
后端·python
倔强的石头_2 小时前
从 8 行报错到一条故障链:我用蓝耘 MaaS 做了一个 AI 日志分析助手
后端
敲个大西瓜2 小时前
Spring Could Alibaba 核心面试题
java·后端·spring
用户8356290780512 小时前
如何使用 Python 为 PowerPoint 幻灯片添加切换效果
后端·python
四千岁2 小时前
RAG系统中的分块
前端·javascript·后端
Young_Gnay2 小时前
.NET 之 WebApi学习笔记 (持续更新)
后端·c#