摘要:中的什么是在第一篇文章中,我介紹了可以導入的四中不同的類型??赡苁且阅撤N方式插入到內存中的惡意代碼,可能嵌入到字符串中。是存在于內存之外的數(shù)組。如果模塊想要調用這些函數(shù),它將該索引傳遞給一個名為的操作。
原文鏈接: https://fanmingfei.com/posts/...
這是系列文章第三篇:
使用 JavaScript 創(chuàng)建一個 WebAssembly 模塊的實例。
WebAssembly 中的 Memory
什么是 WebAssembly table?
在第一篇文章中,我介紹了 WebAssembly 可以導入的四中不同的類型。
values
function
memory
tables
最后一個可能有點陌生。什么是 table import,它有什么用呢?
有時在程序中,你想要有一個變量指向一個函數(shù),就像一個回調。然后你可以把它傳遞給其他的方法。
在 C 語言中,這叫做函數(shù)指針。函數(shù)存在內存中。變量,函數(shù)指針,只是指向該內存地址。
如果需要,以后可以將變量指向一個不同的函數(shù)。這應該是一個熟悉的概念。
在 web 頁面中,所有的方法都是 JavaScript 對象而且由于它們是 JavaScript 對象,所以它們存在于 WebAssembly 內存之外的內存地址中。
如果我們想要一個指向其中一個函數(shù)的變量,我們需要把它的地址放在我們的內存中。
保證網(wǎng)頁安全的一部分是保證內存地址的不可見。你不希望頁面上的代碼可以看到或操作這些內存地址。如果頁面上有惡意代碼,它可以使用修改內存來創(chuàng)建漏洞。
例如,它可能會更改你的內存地址,以指向不同的內存位置。
那么當你嘗試調用這個函數(shù)的時候,你會加載攻擊者給你的內存地址。
可能是以某種方式插入到內存中的惡意代碼,可能嵌入到字符串中。
Tables 可能實現(xiàn)類似函數(shù)指針的東西,這樣不容易受到這些攻擊的影響。
Table 是存在于 WebAssembly 內存之外的數(shù)組。它的值是對函數(shù)的引用。
這些引用包含內存地址,但由于它不在 WebAssembly 的內存中,WebAssembly 不能看到這些地址。
但它確實可以訪問數(shù)組索引。
如果 WebAssembly 模塊想要調用這些函數(shù),它將該索引傳遞給一個名為call_indirect的操作。這樣就可以調用函數(shù)了。
現(xiàn)在,Table 的用例非常有限。它被添加到用于支持函數(shù)指針的規(guī)范中,因為C/C++非常依賴函數(shù)指針。
所以,當前唯一可以使用table來引用的只有函數(shù)但是隨著WebAssembly擴展的功能,例如,當添加對DOM的直接訪問時,你可能將會看到Table上存儲著其他的類型的引用,和除了call_indirect之外的操作。
AboutLin Clark
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/84540.html
摘要:原文鏈接這是系列文章第一篇使用創(chuàng)建一個模塊的實例。將會創(chuàng)建模塊的實例。一旦模塊實例化完成,主進程就會拿到返回的實例。如果創(chuàng)建一個實例,你還需要其它的參數(shù)。使用這些低級裝備這些來構建實例。模塊本身沒有任何狀態(tài)。 原文鏈接:https://fanmingfei.com/posts/... 這是系列文章第一篇: 使用 JavaScript 創(chuàng)建一個 WebAssembly 模塊的實例。 W...
摘要:使用,您可以直接訪問原始字節(jié)碼這可能令人擔憂??梢愿鶕?jù)索引從中拿到字符串現(xiàn)在,很多人并不知道如何在中使用字節(jié)碼。你需要將字節(jié)碼轉換為有用的內容,比如說字符串。通過防止瀏覽器級內存泄漏并提供內存隔離,使事情變得更安全。 原文鏈接:https://fanmingfei.com/posts/... 這是系列文章第二篇: 使用 JavaScript 創(chuàng)建一個 WebAssembly 模塊的實...
摘要:在當前階段,僅僅只是字節(jié)碼規(guī)范。如果都沒有將代碼編譯為字節(jié)碼的工具,要起步就很困難了。接下來要做的是使用將格式的代碼轉換為二進制碼。運行文件,最后就能得到瀏覽器需要的真正的二進制碼。 本文轉載自:眾成翻譯譯者:文藺鏈接:http://www.zcfy.cc/article/1031原文:http://cultureofdevelopment.com/blog/build-your-fi...
摘要:有哪些新特性有哪些改進學著使用這個新版本,來構建更快的應用吧。繼版本之后,花了將近八個月的時間來發(fā)布。的創(chuàng)始人之一,,建議用戶使用,以便使用最優(yōu)的性能,是因為源代碼使用了新特性。全新的插件系統(tǒng)配備了全新整改的插件系統(tǒng)。 本文原文地址:https://auth0.com/blog/webpac...第一次翻譯,不當之處,歡迎指正 官方已經(jīng)發(fā)布了Webpack 4.0。有哪些新特性?有哪些...
摘要:前端日報精選掌握開發(fā)工具新一代前端開發(fā)技術和到底是咋回事第期深入淺出高階組件基于的移動頁面緩存解決方案譯保護我們的,立刻停止狐步舞中文譯中和之間的區(qū)別個人文章譯什么是個人文章譯個人文章熱身實戰(zhàn)過渡與動畫實現(xiàn)炫酷下拉, 2017-08-01 前端日報 精選 掌握Chrome開發(fā)工具:新一代前端開發(fā)技術exports、module.exports和export、export default...
閱讀 935·2023-04-26 00:37
閱讀 802·2021-11-24 09:39
閱讀 2235·2021-11-23 09:51
閱讀 3976·2021-11-22 15:24
閱讀 804·2021-10-19 11:46
閱讀 1918·2019-08-30 13:53
閱讀 2509·2019-08-29 17:28
閱讀 1402·2019-08-29 14:11