
Python 检查器开始盯安全坑:ruff 0.17.4 在 preview 上线 security 规则集
ruff 0.17.4 在 preview 上线 security 规则集,把散落在独立安全工具里的检查聚合进 Python lint 阶段,CI 多一道零成本的安全闸门。
相关标签
Astral 的 Rust 系 Python linter/格式化器 ruff 发布 0.17.4(2026 年 11 月 5 日)。这个版本在 preview 特性里上线了新的 security 规则集,第一个规则直指标准库 tarfile 一个容易踩中的提取陷阱。
security 规则集:把散落的安全检查收进 linter
新规则 tarfile-ignore-zeros-true 针对的是 Python tarfile 模块在处理归档时的一个边界行为:归档中的文件大小字段出现零字节截断时,若未正确配置忽略策略,提取过程可能产生与预期不符的结果,进而埋下路径穿越或数据损坏类风险。此前这类检查散落在 bandit 等独立安全工具里,ruff 把它们聚合进统一的规则体系后,Python 项目可以在 lint 阶段顺手完成安全扫描,不必再单独维护一套安全工具链。
同批 preview 更新还包括 flake8-logging-format 规则 G004 的修复:自动修复动作不再引入行为变化与语法错误。
0.17.4 的其余看点
- Bug 修复:分号前的 bare raise 语句、match 语句分号后的标识符、带 BOM 前缀文件导致诊断渲染 panic 等一批解析与渲染问题被修掉;
SIM102现在能识别多语句 if 分支之后的可折叠 elif。 - 性能:格式化器的注释查找引入 Bloom filter、普通写入改用具体 buffer、复用被调方限定名、pyflakes 对重复字典键延迟值比较(F601/F602)——多个路径持续压缩开销。
- CLI:诊断输出现在尊重
NO_COLOR的优先级,也支持CLICOLOR=0关闭颜色。 - 值得一提的是 0.17.3(10 月 26 日)刚在 preview 里新增了
suspicious类规则shared-clock-mock,ruff 的规则面正在从代码风格向正确性与安全性两个方向同时扩张。
背景与生态位置
ruff 的卖点是比 Flake8 和 Black 快 10 到 100 倍,900 多条内置规则原生复刻了 flake8-bugbear 等热门插件,一个工具替代 flake8(含数十个插件)、Black、isort、pydocstyle、pyupgrade、autoflake,内置缓存避免重复分析未变更文件,支持 pyproject.toml 与层级级联配置,对 monorepo 友好。Apache Airflow、FastAPI、pandas、Hugging Face transformers 等大型开源项目都在使用。ruff 背后的 Astral 也是 uv 和 ty 的作者。
对尚未引入它的团队,pip install ruff 即可起步;已经在用的项目升级 0.17.4 后,可以在 pyproject.toml 里加开 preview 试试 security 规则集,给 CI 多加一道零成本的安全闸门。
更多资讯
想看更多优质内容?
浏览所有资讯