Обнаружение среды в WASM: Web, Node.js или автономная среда выполнения?
Есть много способов запустить модуль WebAssembly, кроме Web, Node.js может загружать модуль wasm с помощью
--experimental-wasm-modules
, автономная среда выполнения, такая как wasmtime и lucet, тоже может ее запускать.
Итак, как мне определить текущую среду в WASM и можно ли применить ограничение к модулям wasm, благодаря которым он может работать только на определенном веб-сайте?
1 ответ
WebAssembly не имеет встроенных возможностей ввода-вывода - он не может получить доступ к DOM, прочитать файловую систему, отобразить на экране и т. Д. Для выполнения любой из этих задач ему необходимо взаимодействовать с окружающей средой (чаще всего с JavaScript).
В результате WebAssembly не может обнаружить свою среду выполнения. Он может спросить хост, в какой среде он выполняется, хотя это, конечно, может быть подделано!