功能
开发者可用于隔离 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
定义范围允许的数据。 ##### denyValue
[] |null
定义范围拒绝的数据。这应由验证逻辑优先处理。 ##### identifierIdentifier
权限或权限集的标识符。
[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