2017-07-21 66 views
3

我使用jsdom來加載我的Node.js應用程序的網頁。 有時,我沒有得到完整的DOM,因爲有些網頁使用腳本在觸發onload事件後動態加載其內容。有沒有辦法在萬無一失的沙箱中使用jsdom?

jsdom停用這些腳本默認的執行,因爲它會導致安全漏洞,因爲他們的文檔中指出:

的jsdom沙箱也不是萬無一失的,和DOM的<腳本內部>正在競選碼可以,如果它努力嘗試,就可以訪問Node.js環境,從而訪問您的機器

我想知道是否有辦法使用一些解決方法使其萬無一失:我是Node.JS開發中的新成員,因爲它是單線程環境,所以我不確定如何創建安全的沙箱。

+0

在Linux上,您可以從子進程運行jsdom代碼,並使其作爲不同的用戶執行,然後執行被鎖定的主節點進程。 – Darkrum

回答

2

NodeJS不具備這種開箱即用的安全性。如果您將在您的Node引擎中運行不可信的第三方代碼,則需要使用操作系統工具來隔離和保護它。

事情你可以看看:

  • 使用chroot監獄。
  • 使用虛擬機。
  • 使用Docker容器。
  • 使用jailed沙箱庫(自己沒有用過,但它有很好的聲譽)。

對這些方法及其侷限性進行一些研究,看看最適合您的目的。我認爲虛擬機將提供最大的隔離和最小的錯誤機會,但是它具有最大的開銷。所有的方法都可以工作。

+0

謝謝slezica!我要研究這些方法中的每一種 – Randy

相關問題