2017-07-21 10 views
3

私はNode.jsアプリケーションでウェブページを読み込むためにjsdomを使用しています。 onloadイベントがトリガーされた後に、一部のWebページでスクリプトを使用してコンテンツを動的にロードするため、完全なDOMが取得されないことがあります。jsdomを完全なサンドボックスで使用する方法はありますか?

jsdomサンドボックスは、誰にでもなく、コードは>のDOMの<スクリプト内で実行されている:それはセキュリティ上の欠陥の原因となるので、そのドキュメントに記載されているように

jsdom

は、デフォルトではこれらのスクリプトの実行を無効にしそれはいくつかの回避策を使用して誰にでもできるようにする方法があった場合、私は思っていた

をすることができ、それは十分に懸命しようとした場合、Node.jsの環境へのアクセスを得るため、あなたのマシンに?私はNode.JSの新機能を開発しており、シングルスレッド環境であるため、どのようにして安全なサンドボックスを作成できるのか分かりません。

+0

Linuxでは、子プロセスからjsdomコードを実行して、別のユーザーとして実行し、次にメイン・ノード・プロセスをロックダウンすることができます。 – Darkrum

答えて

2

NodeJSには、この種のセキュリティはありません。信頼できないサードパーティのコードをノードエンジンで実行する場合は、オペレーティングシステムツールを使用してそれを隔離して保護する必要があります。 chroot刑務所を使用して

  • :あなたがに見ることができる

    物事。

  • 仮想マシンを使用しています。
  • ドッカーコンテナを使用する。
  • jailedサンドボックスライブラリを使用する(自分では使用していませんが、評判は良いです)。

これらのアプローチとその制限についていくつかの調査を行い、どちらが目的に最も適しているかを確認してください。仮想マシンは、最大の隔離とエラーの可能性を最小限に抑えますが、最大のオーバーヘッドがあります。すべてのアプローチが機能するようにできました。

+0

slezicaありがとう!私はこれらのアプローチのすべてを一つ一つ調べます – Randy

関連する問題