转换为WebAssembly时使用什么语言有关系吗?

问题描述 投票:3回答:1

例如,C与Rust没有相同的安全解决方案,但是用Rust编写的WebAssembly是否具有Rust的优势?

用Rust编写并转换为WebAssembly的程序是否比使用C编写的程序“更安全”?

webassembly
1个回答
5
投票

虽然WASM本身可以阻止某些攻击,但是C到WASM程序中仍然存在Rust不可能或难以利用的许多攻击。 WASM中至少存在以下攻击媒介:

  • 整数上溢/下溢:那些是C中的UB,但在Rust中定义。
  • 缓冲区溢出:WASM使用线性存储器。 Rust防止缓冲区溢出,这些溢出在C中为UB。
  • 免费使用后:不可能具有安全的Rust,在C中很常见。

无论是使用C还是Rust作为源语言,使用WASM都不应该进行其他攻击:

  • 任意操作系统级别的代码执行:WASM根本没有这些代码。
  • WASM中不需要可执行空间保护。

使用这些攻击媒介的唯一方法是在浏览器本身中找到漏洞。

© www.soinside.com 2019 - 2024. All rights reserved.