【问题标题】:Environment detection in WASM: Web, Node.js or standalone runtime?WASM 中的环境检测:Web、Node.js 还是独立运行时?
【发布时间】:2021-03-12 04:35:39
【问题描述】:
运行 WebAssembly 模块的方式有很多种,除了 Web,Node.js 可以用 --experimental-wasm-modules 加载 wasm 模块,wasmtime 和 lucet 等独立运行时也可以运行。
那么如何检测 WASM 中的当前环境,是否可以对 wasm 模块应用限制,使其只能在特定网站上运行?
【问题讨论】:
标签:
node.js
webassembly
rust-wasm
wasmtime
【解决方案1】:
WebAssembly 没有内置的 I/O 功能 - 它无法访问 DOM、读取文件系统、渲染到屏幕等。为了执行任何这些任务,它需要与主机环境(最常见的是 JavaScript )。
因此,WebAssembly 无法检测其运行时环境。它可以询问主机它在什么环境中执行,尽管这当然可以伪造!