另一个 WebAssembly 优势源于这样一个事实:代码在虚拟机中运行 。因此,每个 WebAssembly 模块都在沙盒环境中执行,并使用故障隔离技术将其与宿主机运行时环境分开 。这意味着,对于其它部分而言,应用程序独立于其宿主机环境的其余部分执行,如果不调用适当的 API,就无法摆脱沙箱 。
WebAssembly 现状这一切在实践中意味着什么?
如今在运作中的 WebAssembly 的一个例子是 Enarx。
Enarx 是一个提供硬件独立性的项目,可使用 受信任的执行环境(Trusted Execution Environments)(TEE)保护应用程序的安全 。Enarx 使你可以安全地将编译为 WebAssembly 的应用程序始终交付到云服务商,并远程执行它 。正如 Red Hat 安全工程师 Nathaniel McCallum 指出的那样 :“我们这样做的方式是,我们将你的应用程序作为输入,并使用远程硬件执行认证过程 。我们使用加密技术验证了远程硬件实际上是它声称的硬件 。最终的结果不仅是我们对硬件的信任度提高了;它也是一个会话密钥,我们可以使用它将加密的代码和数据传递到我们刚刚要求加密验证的环境中 。”
另一个例子是 OPA,开放策略代理(Open Policy Agent),它 发布 于 2019 年 11 月,你可以 编译 他们的策略定义语言 Rego 为 WebAssembly 。Rego 允许你编写逻辑来搜索和组合来自不同来源的 JSON/YAML 数据,以询问诸如“是否允许使用此 API?”之类的问题 。
OPA 已被用于支持策略的软件,包括但不限于 Kubernetes 。使用 OPA 之类的工具来简化策略 被认为是在各种不同环境中正确保护 Kubernetes 部署的重要步骤。WebAssembly 的可移植性和内置的安全功能非常适合这些工具 。
我们的最后一个例子是 Unity。还记得我们在文章开头提到过 WebAssembly 可用于游戏吗?好吧,跨平台游戏引擎 Unity 是 WebAssembly 的较早采用者,它提供了在浏览器中运行的 Wasm 的首个演示品,并且自 2018 年 8 月以来,已将 WebAssembly 用作 Unity WebGL 构建目标的输出目标 。
这些只是 WebAssembly 已经开始产生影响的几种方式 。你可以在 https://webassembly.org/ 上查找更多信息并了解 Wasm 的所有最新信息 。
推荐阅读
- 汽车卤素灯泡哪些品牌好?为什么有的车经常坏?修车工来告诉你
- 为什么有的人开车舍不得开空调?车载空调耗油吗?
- 快走和跑步哪个减肥呢
- 爬楼梯的正确方法是什么
- 自媒体为什么能这么火?自媒体为什么这么容易运营
- 鱼缸水不通透,浑水变清澈的小窍门,都在这了
- 滚筒洗衣机甩干为什么甩不干,洗衣机甩干不是特别干怎么办
- 不锈钢水槽里铁锈如何去除,304水槽为什么会生锈
- 为什么北方冬天雾霾严重 冬季雾霾严重还是夏季
- 牙齿美容的方法,试试这样做