SuperAPI AI 工具集

understanding-tauri-runtime-authority

安全与审计

查看项目

更新于 10-15 20:06

技能介绍

用途:说明 Tauri 运行时权威(Runtime Authority)如何在应用执行期间执行安全策略。它是位于 WebView 前端与 Tauri 命令之间的强制层,充当所有 IPC 请求的守门人。

主要能力:当 WebView 调用 Tauri 命令时,运行时权威接收 invoke 请求,校验来源是否有权调用该命令、来源是否属于适用的能力(capability),将已定义的作用域(scope)注入请求,再把通过校验的请求交给命令执行;若来源不被允许,请求被拒绝且命令不会执行。它维护 Rust 核心(完全信任)与 WebView 前端(有限信任,仅通过 IPC 暴露资源)之间的信任边界。

解析流程:识别来源窗口/WebView、匹配包含该窗口的能力、汇总权限、检查命令访问、合并作用域、校验或拒绝。窗口属于多个能力时安全边界合并;能力可指定 platforms,运行时只考虑匹配当前平台的能力。

访问控制:拒绝规则始终优先于允许规则。命令执行前会检查命令权限是否存在、调用窗口是否通过能力拥有该权限、作用域限制是否满足。作用域会注入命令执行上下文,变量如 $APP、$APPDATA、$APPCONFIG、$HOME、$TEMP、$DOCUMENT、$DOWNLOAD、$DESKTOP 在运行时解析为实际路径。内置路径穿越防护,路径中的 .. 会被阻止。

配置示例:能力文件放在 src-tauri/capabilities/ 下,如 default.json 中设置 identifier、windows、permissions(如 core:default、core:event:default、core:window:default);文件访问可对 fs:allow-read-file 设置 allow 与 deny 路径;HTTP 访问可对 http:default 设置 allow/deny URL。多窗口可分别定义能力,实现不同安全边界。

适用场景:需要为不同窗口分配最小权限、限制文件系统与网络访问范围、按平台区分权限的 Tauri 应用。

限制:不防护恶意 Rust 代码(Rust 核心完全信任)、过于宽松的配置(开发者责任)、WebView 自身漏洞(由操作系统 WebView 安全边界负责)以及供应链攻击(依赖安全)。调试权限被拒时可依次检查窗口标签、能力、权限与作用域;可查看 src-tauri/gen/schemas/desktop-schema.json 与 mobile-schema.json 了解可用权限。