用途:对 Flutter/Dart 代码库做静态安全审查,只关注可通过阅读源码发现的问题,不涉及渗透测试或运行时分析。
主要能力与要求: 密钥:禁止在源码或配置文件硬编码 API key、token、密码,应由后端服务在运行时下发;注意 --dart-define / String.fromEnvironment 也会被编译进二进制,不是安全替代。 存储:敏感数据用 package:flutter_secure_storage(背后为 iOS Keychain / Android Keystore);SharedPreferences 为明文,仅存放主题、语言、引导状态等非敏感项。 网络:所有请求走 HTTPS,禁止禁用证书校验(仅本地开发测试服务器例外);处理认证、支付或个人数据的接口可实施证书固定(如 package:http_certificate_pinning)。 认证:认证必须在服务端强制校验,widget 或路由中的检查只是客户端便利,可被绕过;生物识别用 package:local_auth;凭据管理建议用 Firebase Authentication 或 Auth0。 加密:不得自研密码学;随机数用 Random.secure(),哈希用 package:crypto,避免 MD5、SHA-1、DES、RC4、ECB。 输入校验:进入 repository 或 API 前的用户输入须校验,表单建议使用 package:formz。 日志:不得记录 token、密码、完整用户对象、含 Authorization 的请求头和 PII;异常信息向外暴露前应脱敏。 依赖:保持依赖无已知漏洞,pubspec.yaml 中 ignored_advisories 需有书面理由,发布前用 osv-scanner 扫描 pubspec.lock,并可用 dart pub outdated 检查补丁。 配置:Android 置 android:allowBackup="false",防止 adb backup 提取应用数据而绕过安全存储。
使用方式:将上述标准应用到全部 Flutter 安全相关工作;仓库另附 references/supply-chain.md、references/binary-protection.md、references/packages.md、references/crypto.md 以获取供应链告警示例、混淆与运行时完整性、包速查与证书固定、生物识别、密码哈希等细节。
限制:仅覆盖静态安全审查,不做渗透测试与运行时分析;资料未提供具体收费、平台支持范围或效果承诺。