关于 flutter-security
为 Flutter 项目提供安全审查与加固指导,面向负责保护用户数据和特权操作的开发者。它以威胁模型为基础,覆盖客户端、平台边界及发布配置,并要求用证据区分漏洞与改进建议。
主要功能
- 01按威胁模型界定安全范围
- 02检查存储、日志与网络配置
- 03指导输入验证和凭据保护
- 04按授权范围开展审查或测试
- 05要求以证据记录发现和修复
适用场景
- 01审查 Flutter 应用中的敏感数据流
- 02检查深链、WebView 和原生边界
- 03验证依赖及发布配置
- 04制定安全问题的修复建议
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thienqo/ flutter-skills --skill flutter-security安装后在 Claude Code 中输入/flutter-security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/application-security.mdplatform-attack-surfaces.mdsecurity-verification.md详细介绍
Flutter 安全
通过与实际威胁模型相匹配的控制措施保护用户数据和特权操作。应将交付到用户可控设备上的代码、配置、存储内容、日志和二进制文件视为可供检查的对象。
确定范围
- 识别受保护的资产、参与方、信任边界、支持的平台、敏感流程和现实的滥用场景。
- 检查与这些资产相关的
pubspec.yaml、pubspec.lock、平台清单和权利配置、环境处理、网络配置、存储、日志记录、WebView、链接和发布设置。 - 区分公开标识符、凭据和由服务器强制执行的信任。不要不经核实提供方的约定和允许的限制,就把所有客户端可见的密钥都标记为机密。
- 明确工作属于静态审查、加固变更还是经授权的运行时评估。未经明确授权,不要探测外部系统、轮换凭据、撤销会话或更改生产策略。
核心规则
- 绝不要依赖混淆、环境文件或客户端检查来保护凭据机密或强制执行授权。
- 尽量减少敏感数据的收集、保留、暴露和记录。当用户数据缓存和凭据的生命周期结束时,应予以清除。
- 当威胁模型有此要求时,使用平台提供的密钥和凭据存储;普通偏好设置和数据库并非机密保险库。
- 在客户端保留身份验证状态,但在可信后端强制执行授权和敏感业务规则。
- 保持安全传输默认设置。只有在有明确需求,且具备可行的轮换和恢复计划时,才添加例外或证书固定。
- 使用维护良好、经过审查的加密原语和协议。不要自行设计算法、模式、密钥派生方法或令牌格式。
- 在深层链接、WebView、平台通道、文件、Intent、剪贴板边界和远程响应处验证不可信输入。
- 将依赖项扫描器的输出视为待分析适用性的线索,而非可利用的 Flutter 问题的自动证明。
按需查阅参考资料
- 有关机密信息、身份验证、存储、网络传输、加密、隐私和日志记录,请阅读 应用程序安全。
- 有关 WebView、深层链接、Intent、权限、备份、屏幕截图、剪贴板和原生边界,请阅读 平台攻击面。
- 执行审计、验证依赖项或发布配置,或报告问题时,请阅读 安全验证。
将登录和会话实现交由 flutter-authentication 负责,将常规缓存和数据库设计交由 flutter-persistence 负责,将传输行为交由 flutter-networking 负责,将原生实现机制交由 flutter-platform-integration 负责,将发布制品处理交由 flutter-build-release 负责。安全工作负责跨越这些边界的威胁和控制要求。
提供有据可查的报告
对于每个发现的问题,应说明资产、攻击前提、可达路径、影响、具体证据,以及最小且适度的修复措施。将已确认的漏洞与纵深防御改进和未解决的问题区分开来。不要声称某个包、扫描器、加密标志或无异常的静态审查就能证明应用安全。
来源
评论
支持 Markdown