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
相关推荐
Victor3564 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor3564 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术6 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
Gogo8167 小时前
BigInt 与 Number 的爱恨情仇,为何大佬都劝你“能用 Number 就别用 BigInt”?
后端
fuquxiaoguang7 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
毕设源码_廖学姐8 小时前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计
野犬寒鸦9 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
逍遥德10 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
MX_935910 小时前
Spring的bean工厂后处理器和Bean后处理器
java·后端·spring
程序员泠零澪回家种桔子11 小时前
Spring AI框架全方位详解
java·人工智能·后端·spring·ai·架构