每个 WebAssembly 模块运行在自己的线性内存空间中,无法访问宿主的内存或其他模块的内存。所有内存访问都经过边界检查,越界操作会被立即终止,从根本上防止跨模块的数据破坏。
WebAssembly 模块默认不拥有任何超出环境的权限,只能通过宿主显式授予的接口访问外部资源。这一能力型(capability-based)安全思路在 WASI 中得到进一步体现——模块起始时没有任何隐式权限,只能执行宿主明确允许的操作。
模块在加载前必须通过严格的静态校验,确保类型一致、控制流合法、内存访问安全。结合结构化的控制流和受限的指令集,WebAssembly 构建出一个可预测、可推理的执行环境,即便运行不受信任的代码也能将风险控制在沙箱边界之内。