当心你想要的
你是如何上网的?我喜欢它的私密性和安全性。
但是不幸的是,我们的想法并不重要。WebAssembly
,这个令人兴奋的新技术,它允许浏览器运行原生的底层语言。也许,它将终结我们所了解的互联网私密性和安全性。
什么是WebAssembly
?
WebAssembly
,简而言之,一个允许浏览器运行原生代码的运行时。我所说的原生,指得是使用如C
,C++
,Rust
等底层语言编写代码。
...
上图是WebAssembly
原理的简化图。编译器以兼容底层虚拟机的语言输入代码,同时生成一个.wasm
后缀的二进制文件。
这个文件被加载,同时通过JavaScript
互操作层绑定到已存在的JS
代码。然后这个.wasm
文件将会被WebAessembly
运行时执行。
WebAssembly
现在被所有主流浏览器完全实现且原生支持。
WebAssembly
能做什么?
WebAssembly
提供了出色的性能。这意味你的网站在浏览器以外的环境下运行,几乎和电脑上的普通软件一样快。
我不能足够的强度,这多么具有革命性。它允许浏览器运行过去因为性能问题无法运行的软件和游戏。它将使复杂的WebVR
体验成为可能。WebAssembly
能够使Chromebooks
变得真正有用。
它能被如何应用?
这里有很多种方式。由于不可读的原生.wasm
文件,使它们成为可能。它们仍然可以被分析和被反编译,但是那不像格式化JS
代码那样的简单。
一个网站使用的某个依赖库可能包含了一个小型轨迹跟踪脚本,而且没有人知道。因为轨迹保护,第一方浏览器(Firefox)和第三方插件都会停止运行。
其次,性能提升意味网站现在可以更好的利用硬件。例如,加密货币挖矿,将很难被阻塞。
最后是安全问题,凭借如此强大的功能和底层访问权限,某些攻击(暴力)将成为可能。我们只希望开源社区能够跟随节奏。
结束语
因此,在WebAssembly广泛采用之后,Internet肯定会不同。
但还没有看穿,它究竟是受益还是灾难性的后果。感谢你的阅读,同时让我在评论知道你所了解的WebAssembly
!