以下為譯文: 你覺得互聯(lián)網(wǎng)怎么樣?我希望它能夠更加私密和安全。 然而,我們的個人想法并不能左右互聯(lián)網(wǎng)的發(fā)展。WebAssembly是一項令人期待的新技術(shù),你可以通過瀏覽器運行原生代碼或底層代碼,因此,眾所周知,這項技術(shù)將終結(jié)互聯(lián)網(wǎng)的隱私和安全性。 什么是WebAssembly?簡單來說,WebAssembly是一種運行時,允許在瀏覽器中運行原生代碼。這里我所說的原生代碼指的是用低級語言(例如C、C++、Rust等)編寫的代碼。 這張圖簡要地說明了WebAssembly的原理。編譯器以一種兼容LLVM的語言輸入代碼,然后生成一個二進制.wasm文件。 該文件可以通過JavaScript的互操作層加載到現(xiàn)有的JS代碼,然后由WebAssembly運行時執(zhí)行.wasm文件。 如今,WebAssembly已可以在所有主流瀏覽器中使用,并得到了原生的支持。 WebAssembly可以做些什么?WebAssembly具有出色的性能。這意味著網(wǎng)站的運行速度與那些在PC上(在瀏覽器之外)常規(guī)軟件的運行速度幾乎相同。 我不禁感嘆,這是一項多么偉大的革命。以前由于性能問題而無法運行的軟件和游戲,如今在WebAssembly的幫助下,都可以在瀏覽器中運行了。復(fù)雜的WebVR體驗也可能成為現(xiàn)實了。WebAssembly也可以讓Chromebook崛起了。 微軟的Blazor是一款非常有趣的WebAssembly應(yīng)用程序。微軟基本上是將整個.NET平臺移植到了WebAssembly,并在上面添加了一個UI庫。 這表示,如果你是.NET開發(fā)人員,那么你不需要做任何事就掌握了所有Web應(yīng)用開發(fā)技術(shù)。 濫用WebAssembly的方式WebAssembly的濫用使用方式有很多種,其中很多方法都是建立在.wasm文件的不可讀性上的。雖然你還可以反編譯和分析.wasm文件,但絕不會像整理JavaScript格式那樣簡單。 例如,你可以將一個很小的跟蹤腳本神不知鬼不覺地添加到網(wǎng)站使用的某個庫中。由于wasm文件不可讀,所以第一方(Firefox)和第三方(插件)的跟蹤保護都檢測不到。 其次,性能提高意味著網(wǎng)站可以更好地利用硬件。例如,加密數(shù)字貨幣挖礦。同樣,這些行為也很難阻止。 最后,還有安全問題。憑借如此強大的功能和底層的訪問權(quán)限,攻擊和漏洞將無處不在。我們只希望開源社區(qū)能夠跟上發(fā)展。 結(jié)束語因此,等到WebAssembly被廣泛采用后,互聯(lián)網(wǎng)將發(fā)生翻天覆地的變化。 然而,這種后果對我們是有益的,還是災(zāi)難性的?讓我們拭目以待吧。感謝您的閱讀! |
|