[译]互联网的终结,我们所了解的WebAssembly

654 阅读2分钟

当心你想要的

你是如何上网的?我喜欢它的私密性和安全性。

但是不幸的是,我们的想法并不重要。WebAssembly,这个令人兴奋的新技术,它允许浏览器运行原生的底层语言。也许,它将终结我们所了解的互联网私密性和安全性。

什么是WebAssembly?

WebAssembly,简而言之,一个允许浏览器运行原生代码的运行时。我所说的原生,指得是使用如C,C++,Rust等底层语言编写代码。

                                              ...

上图是WebAssembly原理的简化图。编译器以兼容底层虚拟机的语言输入代码,同时生成一个.wasm后缀的二进制文件。

这个文件被加载,同时通过JavaScript互操作层绑定到已存在的JS代码。然后这个.wasm文件将会被WebAessembly运行时执行。

WebAssembly现在被所有主流浏览器完全实现且原生支持。

WebAssembly能做什么?

WebAssembly提供了出色的性能。这意味你的网站在浏览器以外的环境下运行,几乎和电脑上的普通软件一样快。

我不能足够的强度,这多么具有革命性。它允许浏览器运行过去因为性能问题无法运行的软件和游戏。它将使复杂的WebVR体验成为可能。WebAssembly能够使Chromebooks变得真正有用。

它能被如何应用?

这里有很多种方式。由于不可读的原生.wasm文件,使它们成为可能。它们仍然可以被分析和被反编译,但是那不像格式化JS代码那样的简单。

一个网站使用的某个依赖库可能包含了一个小型轨迹跟踪脚本,而且没有人知道。因为轨迹保护,第一方浏览器(Firefox)和第三方插件都会停止运行。

其次,性能提升意味网站现在可以更好的利用硬件。例如,加密货币挖矿,将很难被阻塞。

最后是安全问题,凭借如此强大的功能和底层访问权限,某些攻击(暴力)将成为可能。我们只希望开源社区能够跟随节奏。

结束语

因此,在WebAssembly广泛采用之后,Internet肯定会不同。

但还没有看穿,它究竟是受益还是灾难性的后果。感谢你的阅读,同时让我在评论知道你所了解的WebAssembly

引用

WebAssembly Concepts by MDN

The Dark Side of WebAssemby by Virus Bulletin

Blazor

docs.assemblyscript.org/