安全
本页旨在解释 Tauri 设计和生态系统核心的高级概念和安全功能,这些功能使您、您的应用程序和您的用户默认情况下更加安全。
它还包括关于最佳实践、如何向我们报告漏洞以及详细概念解释的建议。
信任边界
信任边界是计算机科学和安全中使用的术语,它描述了程序数据或执行更改其“信任”级别的边界,或者两个具有不同权限的主体交换数据或命令的边界。 1
Tauri 的安全模型区分了为应用程序核心编写的 Rust 代码和以系统 WebView 理解的任何框架或语言编写的前端代码。
检查和严格定义在边界之间传递的所有数据对于防止信任边界违规非常重要。如果数据在这些边界之间传递时没有访问控制,那么攻击者很容易提升和滥用权限。
IPC 层是这两个信任组之间通信的桥梁,并确保边界不会被打破。
插件或应用程序核心执行的任何代码都具有对所有可用系统资源的完全访问权限,并且不受约束。
在 WebView 中执行的任何代码只能通过定义明确的 IPC 层访问暴露的系统资源。对核心应用程序命令的访问通过应用程序配置中定义的功能进行配置和限制。各个命令实现强制执行也在功能配置中定义的可选的细粒度访问级别。
了解有关各个组件和边界强制执行的更多信息
Tauri 允许开发人员选择自己的前端堆栈和框架。这意味着我们无法为每种选择的前端堆栈提供强化指南,但 Tauri 提供了通用功能来控制和包含攻击面。
(不)捆绑 WebView
Tauri 的方法是依赖操作系统 WebView,而不是将 WebView 捆绑到应用程序二进制文件中。
这有很多原因,但从安全的角度来看,最重要的原因是 WebView 安全补丁版本发布到推广到应用程序最终用户所需的平均时间。
我们观察到,WebView 包维护者和操作系统包维护者平均而言,比直接将 WebView 与其应用程序捆绑在一起的应用程序开发人员更快地修补和推广安全补丁 WebView 版本。
此观察结果存在例外,理论上两种路径都可以在相似的时间范围内完成,但这需要每个应用程序更大的开销基础设施。
捆绑对于 Tauri 应用程序开发人员的体验来说具有缺点,我们不认为它本身是不安全的,但当前的设计是一种权衡,可以显着减少野外已知的漏洞。
生态系统
Tauri 组织提供和维护的不仅仅是 Tauri 存储库,为了确保我们提供合理的安全多平台应用程序框架,我们确保付出额外的努力。
要了解有关我们如何保护我们的开发过程、您可以适应和实施的内容、您的应用程序可能面临的已知威胁以及我们计划在未来改进或加强的内容的更多信息,您可以查看以下文档
协同披露
如果您认为 Tauri 或我们组织中的其他存储库中的任何内容存在安全隐患或问题,请不要公开评论您的发现。相反,请直接联系我们的安全团队。
首选的披露方法是通过受影响存储库上的 Github 漏洞披露。我们的大多数存储库都启用了此功能,但如有疑问,请通过 Tauri 存储库 提交。
或者,您可以通过电子邮件 security@tauri.app 联系我们。
尽管我们目前没有安全漏洞赏金预算,但在某些情况下,我们将考虑使用我们有限的资源奖励协同披露。
脚注
© 2025 Tauri 贡献者。CC-BY / MIT