WebAssembly如何获得安全性
2023-12-14 20:47:31
1、虚拟机
WebAssembly是第一个共享JavaScript VM的语言,而JavaScript VM在运行时是沙箱化的,同时经历了多年的检验和安全测试,确保了其安全性。
WebAssembly模块的可访问范围不超过JavaScript的访问范围,同时也会遵守相同的安全性规则,包括同源策略这样的增强规则。
2、线性内存
和桌面应用程序不同,WebAssembly模块对设备内存没有直接访问权限,而是运行时,环境在初始化过程中向模块传递一个ArrayBuffer。模块将这个ArrayBuffer当作线性内存来使用,WebAssembly框架执行检查以确保代码不会对这个数组进行越界操作。
3、函数指针
函数指针存储在Table段中,WebAssembly模块不能直接访问。代码会用索引值向WebAssembly框架提出访问某个项目的请求。然后框架访问内存,并代表代码执行这个项目。
4、执行栈
在C++中,执行栈与线性内存一起位于内存中,虽然C++代码不应该修改执行栈,但是它可以使用指针实现修改。WebAssembly的执行栈与线性内存是分离的,代码无法访问。
文章来源:https://blog.csdn.net/qq_34754747/article/details/135002409
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!