跳到内容
Tauri

功能

开发者可用于隔离 IPC 层访问的分组和边界机制。

它控制应用程序窗口和 Web 视图对 Tauri 核心、应用程序或插件命令的精细访问。如果 Web 视图或其窗口与任何功能不匹配,则它完全无法访问 IPC 层。

这可以通过根据所需系统访问权限创建窗口组来实现,从而减少特权较低的窗口中前端漏洞的影响。窗口可以通过确切名称(例如 main-window)或 glob 模式(如 *admin-*)添加到功能中。一个窗口可以拥有零个、一个或多个关联功能。

{
"identifier": "main-user-files-write",
"description": "This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.",
"windows": [
"main"
],
"permissions": [
"core:default",
"dialog:open",
{
"identifier": "fs:allow-write-text-file",
"allow": [{ "path": "$HOME/test.txt" }]
},
],
"platforms": ["macOS","windows"]
}

对象属性:

  • description
  • identifier (必需)
  • local
  • permissions (必需)
  • platforms
  • remote
  • webviews
  • windows

字符串

功能旨在允许关联窗口的操作的描述。

它应包含分组权限应允许的操作的描述。

此功能允许 main 窗口访问 filesystem 写入相关命令和 dialog 命令,以启用对用户选择的文件进行编程访问。

字符串

功能的标识符。

main-user-files-write

布尔值 (boolean)

此功能是否对本地应用 URL 启用。默认为 true

默认值true

PermissionEntry[] 每个项目必须唯一

此功能附加的权限列表。

必须包含插件名称作为前缀,形式为 ${plugin-name}:${permission-name}。对于直接在应用程序本身中实现的命令,只需要 ${permission-name}

[
"core:default",
"shell:allow-open",
"dialog:open",
{
"identifier": "fs:allow-write-text-file",
"allow": [{ "path": "$HOME/test.txt" }]
}
]

Target[] | null

限制此功能适用于哪些目标平台。

默认情况下,所有平台都将被定位。

["macOS", "windows"]

CapabilityRemote | null

配置可使用功能权限的远程 URL。

此设置是可选的,默认情况下不设置,因为我们的默认用例是内容从本地应用程序提供。

{
"urls": ["https://*.mydomain.dev"]
}

字符串[]

受此功能影响的 Web 视图列表。可以是 glob 模式。

功能将在所有标签与此列表中任何模式匹配的 Web 视图上启用,无论 Web 视图的窗口标签是否与 [Self::windows] 中的模式匹配。

["sub-webview-one", "sub-webview-two"]

字符串[]

受此功能影响的窗口列表。可以是 glob 模式。

如果窗口标签与此列表中任何模式匹配,则该功能将在该窗口的所有 Web 视图上启用,无论 [Self::webviews] 的值如何。

在多 Web 视图窗口上,为了实现精细的访问控制,建议指定 [Self::webviews] 并省略 [Self::windows]。

["main"]

与功能关联的远程 URL 的配置。

对象属性:

  • urls (必需)

字符串[]

此功能引用的远程域,使用 URLPattern 标准

  • “https://*.mydomain.dev”:允许 mydomain.dev 的子域
  • https://mydomain.dev/api/*”:允许 mydomain.dev/api 的任何子路径

字符串

以下任意一种:

  • integer 格式为 int64,表示一个 [i64]。
  • number 格式为 double,表示一个 [f64]。

一个有效的 ACL 数字。

以下任意一种:

  • Identifier 通过标识符引用权限或权限集。
  • 通过标识符引用权限或权限集并扩展其范围。 对象属性: - allow - deny - identifier (必需) ##### allow Value[] | null 定义范围允许的数据。 ##### deny Value[] | null 定义范围拒绝的数据。这应由验证逻辑优先处理。 ##### identifier Identifier 权限或权限集的标识符。

[Capability] 中权限值的条目可以是原始权限 [Identifier],也可以是引用权限并扩展其范围的对象。

以下其中之一:

  • "macOS" macOS。
  • "windows" Windows。
  • "linux" Linux。
  • "android" Android。
  • "iOS" iOS。

平台目标。

以下任意一种:

  • null 表示一个空 JSON 值。
  • boolean 表示一个 [bool]。
  • Number 表示一个有效的 ACL [Number]。
  • string 表示一个 [String]。
  • Value[] 表示其他 [Value] 的列表。
  • 表示一个 [String] 键到 [Value] 值的映射。 允许附加属性Value

所有支持的 ACL 值。


© 2025 Tauri 贡献者。CC-BY / MIT