如何安全检查Flutter依赖树?如何无执行审查依赖包安全性?
Flutter依赖安全检查相关问题解答
1. 克隆项目、下载依赖但不执行代码的可行方案
- 先把项目克隆到本地:
git clone <项目仓库地址> - 进入项目目录后,执行
flutter pub get命令,这个操作只会把所有依赖包下载到本地缓存和项目的.dart_tool目录里,全程不会执行任何项目或依赖的代码 - 下载完成后,你可以直接查看依赖包的源码:
- 依赖包存在本地缓存中,不同系统路径不同:macOS是
~/.pub-cache/hosted/pub.dev/,Windows是C:\Users\<你的用户名>\AppData\Roaming\Pub\Cache\hosted\pub.dev\,每个文件夹对应一个依赖,直接打开就能看源码 - 用
flutter pub deps命令可以列出完整的依赖树,清楚看到每个依赖的版本和层级,方便逐个排查
- 依赖包存在本地缓存中,不同系统路径不同:macOS是
2. Flutter依赖包是否会像npm那样自动运行脚本
Flutter的pub工具和npm的机制不一样:
- 默认情况下,pub不会自动执行依赖包里的任何脚本,npm那种
postinstall类的自动执行脚本特性在pub里是没有的 - 只有当你主动运行项目代码,或者依赖包的源码里本身写了恶意执行逻辑时,才可能有风险,但只要你不启动项目,只看源码,这些逻辑就不会被触发
- 额外提醒:如果依赖包含Android/iOS原生代码,你需要单独检查这些原生部分的代码,但同样,不运行项目的话这些代码也不会被执行
内容的提问来源于stack exchange,提问作者Gatonito
相关产品推荐
相关产品推荐

