功能
开发者可以使用的一种分组和边界机制,以隔离对 IPC 层的访问。
它控制应用程序对 Tauri 内核、应用程序或插件命令的细致访问。如果一个窗口不匹配任何能力,则它根本无法访问 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 programatic 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"]}
对象属性:
- 描述
- 标识符(必需)
- 本地
- 权限(必需)
- 平台
- 远程
- Web 视图
- Windows
描述
字符串
描述了能力旨在允许关联窗口执行的操作。
应包含对分组权限允许的内容的描述。
示例
此能力允许主窗口访问与文件系统相关的 filesystem
写入命令和 dialog
命令,以便启用程序访问用户选择的文件。
标识符
字符串
能力的标识符。
示例
main-user-files-write
本地
布尔型
此能力是否用于本地应用程序 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 视图
字符串
[]
受此功能影响的webview列表。可以是glob模式。
仅在多webview上下文中使用时才需要,默认情况下所有匹配 [Self::windows
] 的窗口的子webview都链接。
示例
["sub-webview-one", "sub-webview-two"]
Windows
字符串
[]
受此功能影响的窗口列表。可以是glob模式。
在多webview窗口中,优先使用 [Self::webviews
] 进行细粒度访问控制。
示例
["main"]
定义
CapabilityRemote
与功能相关联的远程URL的配置。
对象属性:
- urls (必需)
urls
字符串
[]
使用URLPattern标准的该功能参考的远程域。
示例
- “https://*.mydomain.dev”:允许mydomain.dev的子域
- “https://mydomain.dev/api/*”:允许mydomain.dev/api的任何子路径
标识符
字符串
数字
以下任何一个:
integer
格式化为int64
代表一个 [i64
]。number
格式化为double
代表一个 [f64
]。
有效的ACL编号。
PermissionEntry
以下任何一个:
Identifier
通过标识符引用一个权限或权限集。- 通过标识符引用一个权限或权限集并扩展其作用域。对象属性: - allow - deny - identifier (必需) ##### allow
Value
[] |null
定义作用域内允许的数据。 ##### denyValue
[] |null
定义作用域内拒绝的数据。这应在验证逻辑中优先。
在 [Capability
] 中,一个权限值的条目可以是原始权限 [Identifier
] 或引用权限并扩展其作用域的对象。
目标
以下之一:
"macOS"
MacOS。"windows"
Windows。"linux"
Linux。"android"
Android。"iOS"
iOS。
目标平台。
值
以下任何一个:
null
代表一个null JSON值。boolean
代表一个 [bool
]。Number
代表一个有效的ACL [Number
]。string
代表一个 [String
]。Value
[] 代表其他 [Value
]s 的列表。- 代表以 [
String
] 键到 [Value
]s 映射的映射。 允许额外属性:Value
所有支持的ACL值。
© 2025 Tauri 贡献者. CC-BY / MIT