用途
Tauri 是一个跨平台桌面应用框架,将 Rust 后端与 Web 前端结合,强调安全性与性能。本技能面向 Tauri 桌面应用开发,核心关注点是 Web 内容与原生系统访问之间的安全边界。文档指出,IPC 配置不当、CSP 绕过以及能力管理不当,可能导致任意代码执行、文件系统访问和权限提升,因此将该技能标记为 HIGH 风险。
主要能力
文档覆盖的核心专长领域包括:
- Tauri 能力(capability)与权限系统
- IPC(进程间通信)安全
- 内容安全策略(CSP)配置
- 插件开发与安全
- 自动更新安全
- 窗口与 Webview 管理
核心原则为:测试先行、关注性能、最小权限、纵深防御、安全默认值、输入验证、来源校验、透明更新。文档还给出场景决策框架,例如需要文件系统访问时应限定到特定目录而非根目录;需要 Shell 执行时应默认禁用,必要时使用允许列表;需要网络访问时在 CSP 中指定允许域名;自定义 IPC 命令需校验全部输入并检查权限;敏感操作需来源校验。
使用方式
文档给出的实现工作流为 TDD:
- 先写失败测试(含 Rust 后端测试与前端 Vitest 测试示例);
- 编写最小实现让测试通过;
- 按需重构;
- 运行完整验证,包括
cargo test、cargo clippy -- -D warnings、cargo audit、npm test、npm run typecheck。
文档推荐的版本为:Tauri CLI 2.0+、Tauri Core 2.0+、Rust 1.77.2+、Node.js 20 LTS。
安全配置相关文件位于 src-tauri/ 目录,包含 Cargo.toml、tauri.conf.json(主配置)、capabilities/(权限定义,如 default.json、admin.json)以及 src/main.rs。
文档提供了多类实现模式:最小能力配置、安全 CSP 配置、安全 IPC 命令(含输入验证与路径规范化和目录范围校验)、来源校验、安全自动更新(含公钥签名验证)。性能模式给出正反例对比:重操作使用异步命令(tokio)、高效 IPC 序列化(分页响应与最小字段)、窗口关闭时的资源清理与生命周期管理、使用 Arc 进行状态管理优化、窗口复用。
适用场景
适用于开发需要 Web 前端与原生能力结合的跨平台桌面应用,尤其是对权限控制、IPC 安全、CSP 配置、自动更新签名验证有较高要求的场景。文档同时给出安全测试清单,例如 npx tauri info、cargo audit、npx tauri build --debug、npm run test:security,以及部署前安全检查项(Tauri 2.0+ 及最新补丁、Rust 1.77.2+、限制性 CSP、启用 freezePrototype、最小权限能力、显式文件系统范围、禁用或允许列表化的 Shell 执行、前端 envPrefix 中不含 TAURI_、自动更新使用签名验证、所有 IPC 命令校验输入、敏感操作来源校验、cargo audit 通过)和运行时清单(生产环境禁用调试模式、禁用 DevTools、禁用远程调试、更新检查可用)。
限制
文档记录的风险与常见错误包括:过度宽松的能力(如授予整个文件系统的访问)、禁用 CSP、启用 Shell 执行、在前端暴露 Tauri 密钥(envPrefix 中包含 TAURI_ 会泄露 TAURI_PRIVATE_KEY)、IPC 缺少验证。文档还列出已记录的 CVE(CVE-2024-35222、CVE-2024-24576、CVE-2023-46115、CVE-2023-34460、CVE-2022-46171)及对应缓解措施,并给出 OWASP Top 10 2025 映射与输入验证、密钥管理、错误处理的安全标准。其余具体收费、平台或效果信息暂未提供。