
文章插图
- 缺点
- 由于信息经过加密,所以隔离模式相比 Brownfield 模式而言存在额外开销 。除去性能敏感的应用 (使用很少依赖来提升性能的应用) 之外,使用 AES-GCM 算法来加解密 IPC 信息会对大部分应用造成相对较小的性能影响 。
- Windows平台上,Webview限制了因为沙盒环境下加载 <iframe>标签内的外部文件,Tauri在构建时实现一些步骤将脚本注入,但是ES Modules可能无法正常加载 。
安全性
- 动态AOT:Tauri 应用启动时将多次进行编译 。通过使用Tauri提供的动态预编译器,可以生成每个会话都不同的代码引用,但技术上一致的代码单元;
- 函数 ASLR:函数地址空间布局随机化 (Address Space Layout Randomization) 将在运行时随机调整函数名称,且可以实现 OTP 哈希功能,这样将永远不会出现相同的会话 。在Tauri应用启动时,或可选在每次执行后,随机生成函数名称 。每个函数指针均使用 UID 以防止静态攻击;
- 自杀式函数注入:一种高级的ASLR技术,Rust在运行时载入进入Webview的闭包Promise和随机的句柄,API接口在Promise处理中就被锁定,在执行完毕后被立即设置成;
可以有效防止恶意页面被加载
- 使用Event Bridge:Tauri内部的信息通信使用Event Bridge,Event Bridge用来保证只能传递信息和指令给一个指定的中间代理,而不是直接传递不安全的函数调用;
- API Allow List:Tuari提供的API都是关闭状态,若没有启用相关API,应用构建时不会包括相关功能函数的代码 。这可以减少二进制文件大小及攻击面 。同时API还有严格的权限选项,如文件读写相关API可以设置只读/只写/指定目录或文件等功能;
- CSP:Tauri会对本地的html页面强制使用内容安全策略,本地脚本经过哈希处理,同时样式、外部脚本经由加密随机字符串引用,防止禁止内容被加载;
- 反编译难:Tauri在构建时,会将相关前端代码直接构建在二进制可执行文件中,这意味着和Electron的ASAR文件不同,具体的代码无法被轻松地反编译;
- 一次性Token和哈希:使用OTP加盐哈希处理重要的信息,可以在前端和Rust后端之间加密信息;
Tauri-egui[6]因为Tauri应用的前端是用了Web相关的技术栈,因此在运行时总有办法来使用开发者模式/调试工具等来进行检查元素等 。在某些情况下,如密码输入等场景,我们希望能够保证前端的UI展示是无法被修改的,这时可以使用Tauri-egui这个库,这个库对egui进行了封装,可以使用Rust来编写前端的UI 。

文章插图
优点

文章插图
Benchmark
- 内存使用

文章插图
- 构建产物体积

文章插图
缺点
- 兼容性:由于Tauri使用的是系统Webview,因此在构建时前端的代码需要做polyfill;且Windows平台上,由于Webview2只在Windows10/11上有默认推送安装,要想在Windows7/8等较低版本的平台上运行的话,还需要另外安装Webview2的运行时 。
参考资料[1] 在macOS中打开系统Webview的检查元素开关,
https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/
[2] 微软开始在Teams应用中放弃Electron,
https://blog.devgenius.io/microsoft-is-finally-ditching-electron-9e081757f9db
[3] VSCode优化括号颜色匹配,
https://code.visualstudio.com/blogs/2021/09/29/bracket-pair-colorization
[4] Tauri官网, https://tauri.app
[5] Rust Wikipedia, https://zh.wikipedia.org/zh-cn/Rust
[6] Brownfield, https://en.wikipedia.org/wiki/Brownfield_(software_development)
?? 谢谢支持以上便是本次分享的全部内容,希望对你有所帮助^_^
【Tauri:下一代桌面应用开发框架?】
推荐阅读
- iOS微信更新,可将小程序放到iPhone桌面,退出群聊保留聊天记录
- originos系统下载官网?origin OS系统如何切换桌面?
- qq音乐网页版怎么开桌面歌词?
- Docker 桌面与 Rancher 桌面
- 最好用的桌面便签软件?桌面便签软件推荐
- 电脑开机后不显示桌面、电脑开机后不显示桌面怎么办?
- 昭襄王之后谁是秦王?秦昭襄王的下一代君王是谁
- 语雀桌面端技术架构实践
- 搭载12代酷睿含显示器2999元真香!战66迷你台式机成为桌面新宠
- 桌面上的回收站图标不见了怎么办 桌面的回收站不见了
