乐闻世界logo
搜索文章和话题

Tauri 的安全机制和权限系统如何工作

2月19日 13:26

Tauri 的安全机制是其核心优势之一,通过多层防护确保应用安全:

权限系统

Tauri 采用最小权限原则,默认情况下前端无法访问系统资源。需要在 tauri.conf.json 中显式声明权限:

json
{ "tauri": { "allowlist": { "fs": { "all": false, "readFile": true, "writeFile": true, "scope": ["$HOME/*"] }, "shell": { "all": false, "open": true } } } }

内容安全策略(CSP)

通过 CSP 限制资源加载和脚本执行:

rust
tauri::Builder::default() .plugin(tauri_plugin_csp::Builder::new() .default_policy(ContentSecurityPolicy { default_src: vec!["'self'"], script_src: vec!["'self'"], style_src: vec!["'self'"], ..Default::default() }) .build())

作用域限制

为文件系统、Shell 等操作设置作用域,防止访问敏感路径:

json
{ "fs": { "scope": ["$HOME/documents/*", "$APPDATA/*"] } }

协议白名单

限制 WebView 可以访问的协议和域名:

json
{ "tauri": { "security": { "csp": "default-src 'self'", "dangerousDisableAssetCspModification": false } } }

Rust 后端隔离

  • Rust 代码在独立进程中运行
  • 前端无法直接执行 Rust 代码
  • 所有系统调用都通过 Tauri 的 API 进行

最佳实践

  1. 只授予必要的最小权限
  2. 使用 CSP 限制资源加载
  3. 验证和清理所有用户输入
  4. 定期更新依赖项
  5. 审计第三方插件的安全性
标签:Tauri