看flask 3.1.0的官方更新日志,这次版本直接把不少安全、部署相关的配置下沉到了框架核心层面。官方明确列出来的更新点有:支持给单个请求单独设置请求体大小,新增 max_form_memory_size 和 max_form_parts 两个配置项,原生支持 partitioned cookie 属性,还能通过 trusted_hosts 配置在路由阶段就校验可信主机。对于跑在线上的flask应用来说,这些改动根本不是花架子语法糖,全是直接影响请求资源管控、cookie行为、host头边界校验的底层核心能力。

来源:Flask 官方 Changes 页面
最值得注意的是请求体限制相关的改动。之前不少Flask项目只能在全局配置里统一限制上传文件、表单的大小,碰到不同业务接口的差异化需求,要么额外写中间件处理,要么直接在视图函数里手动判断。现在Flask 3.1.0支持给每个请求单独设置 Request.max_content_length,还补上了表单内存占用、表单分片数量的相关配置,能更细粒度地管控上传、表单提交行为,也能更好防范潜在的资源消耗类攻击。
Flask官方安全文档早就把资源使用列为Web应用必须考量的安全项之一,也提到很多部署平台本身就会对请求体大小、内存占用、请求处理时长、文件描述符数量做限制。这次Flask 3.1.0把相关配置补全到框架层,相当于应用维护者不用把所有边界校验的工作全丢给Web服务器或者反向代理做。框架层面的限制和部署层的限制完全不冲突:前者离业务入口更近,适配业务规则更方便,后者负责外围兜底防护。

来源:Flask 官方安全文档
Partitioned Cookie支持和Trusted Hosts校验这两个更新,面向的是更主流的现代浏览器和当前常用的部署场景。前者和CHIPS规范对应,可以直接用在分区Cookie的相关场景里;后者把可信主机的检查逻辑提前到路由阶段,能大幅降低恶意Host头带来的安全风险。升级的时候要注意:这些新能力不会自动替换你现有的网关层策略,也不会自动修正之前的错误配置,项目还是要对照自身的域名规则、反向代理配置、Cookie策略、第三方扩展兼容情况逐一验证。
信源说明:本文内容全部整理自Flask 3.1.0官方更新日志页和Flask官方安全注意事项文档,实际部署的适配策略请以你所用的Web服务器、代理服务、浏览器的兼容要求为准。











