WebAssembly 中是否有 Javascript 运行时

max*_*dbe 5 javascript isolation javascript-injection webassembly

为了安全起见,我正在尝试隔离用户 JavaScript 代码。我可以通过 Iframe 安全性和消息传递来做到这一点。

是否有一个可以通过 WebAssembly 加载的 JavaScript 运行时,我可以向其中传递一些简单的内容(例如“5+3”)并读取结果。

如果这是 c# 等,我可以新建并管理 V8 引擎并让它执行 javascript 并传回主机。

Col*_*inE 4

JavaScript 引擎通常用 C++ 编写,这使得它们成为使用 Emscripten 编译为 WebAssembly 的理想选择。是的,您可以将其用于隔离目的 - 请参阅 Figma 的这篇优秀博客文章,其中具体讨论了这一点:

https://www.figma.com/blog/how-we-built-the-figma-plugin-system/

它还讨论了各种其他有用的选项,例如领域。

  • 谢谢,这引导我到 https://github.com/justjake/quickjs-emscripten,这可能是答案,如果成功,将其标记为答案。还发现了较旧的 https://github.com/kareniel/duktape-wasm (2认同)