問題タブ [node-vm2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
226 参照

node.js - NodeJS ファイバーと VM サンドボックスを組み合わせる

次のような信頼できないコードを Node で実行したいと考えています。

ファイバーを使用して、同期動作が期待どおりに機能するようになりました。

問題は、コードをサンドボックス化する方法です。ファイバーを使用する必要があるため、非常に複雑になります。どうやって始めればいいのかよくわかりません。上記をvm2でサンドボックス化するにはどうすればよいですか? たとえば、次は明らかに機能しません。

( VM 内のサンドボックス化されたコードにはgreen_ledとが表示されないため、機能しません)。sleep

これはどのように行うべきですか?また...

  1. おそらく、ファイバーや実装green_ledなど、すべてを VM 内で実行する必要がありますか?
  2. それとも、VM によって実行されるコードを最小限に抑え、代わりに何らかの方法でホワイトリスト/プロキシを使用する方がよいでしょうgreen_ledsleep? そもそも繊維がどのように機能するかを理解するのは非常に困難です。
0 投票する
0 に答える
397 参照

node.js - ノード vm2 で「module.exports = function(foo){...}」を実行する

Node と仮想マシンvm2は初めてです。後者のドキュメントでは、その使用例を示しています。

質問: これは実際に何をしているのですか?

まず、なぜmodule.exportsここで使われているのですか?つまり、なぜ以下のように省略しないのでしょうか?

第二に、それを見る別の方法: 通常のノードプログラミングではrequire(inc)、あるファイルで変数に割り当てるために使用されるのは初心者の知識であり、別のファイル (によって選択されたinc) に割り当てられmodule.exportsます。上記の使用法とどう違うのvm2ですか?

具体的require(...)には、上記で暗黙的に呼び出されていますか? 1 つのサンドボックス内で複数のモジュールを (上記のように) 定義し、参照するにはどうすればよいでしょうか?

どのような質問をするべきかを知ることさえ困難です。実際には、通常のノード プログラミングとは異なる方法で をmodule.exports使用してvm2、違いを強調する方法の説明を望んでいます。