QuickJS-emscripten : QuickJSをWASMにコンパイルして実行する
(github.com/justjake)- Figmaがプラグインを実行する際に、セキュリティ脆弱性をなくすために使っている方法
- Fabrice BellardがCで作成したQuickJSをWebAssemblyにコンパイルし、JavaScript/TypeScriptバインディングを提供
- ES2020レベルのJavaScriptを安全に実行可能
- QuickJSランタイム内部の値を生成して操作
- ホストの関数をQuickJS内で利用
- Asyncify : SynchronousなC/C++コードをAsynchronousなJavaScriptコードから呼び出し、Cコード内で非同期JSコードの実行完了を待機可能
1件のコメント
Web 上で JS プラグインを運用するシステムにとっては、セキュリティ面で非常に優れた方式だと思います。
Ryan DahlのJavaScript Containersについての考え にもつながる話のようです。
QuickJS Javascript Engine - 小さく高速で埋め込み可能なJavaScriptエンジン
Figma の An update on plugin security
これと似ていますが、もう少しシンプルな API で実装されたコード define-function : quick.js based sandbox