2013-04-25 57 views
7

我是一個完整的Node noob,所以我很抱歉如果這個問題有明顯的答案。用於Node.js的沙盒插件

我正在創建一個web應用程序,它將運行來自不受信任來源(即社區提交)的插件。所以我需要將這些插件鎖定到只允許某些訪問的沙箱中(無法寫入磁盤等)。理想情況下,該插件只能使用某些經過批准的節點包和API。

這是可能的節點?如果是這樣,你可以指向我的包或文件,讓我開始?

+0

在github上有一個名爲「node-sandbox」的模塊。它基本上在另一個進程中運行不受信任的代碼。這是非常準系統的海事組織,但它可以完成這項工作。當我從github上下載一個新模塊來發現奇怪的不規則行爲並且從未找到一個模塊時,我通常會很快讀取代碼。我知道這並不是最好的,因爲代碼之間的更新更新,但我想我們必須在某些時候相信人。 – 2013-04-25 14:55:15

+0

嗯,我不能讓它信任我的情況,因爲我會接受代碼「自動」作爲插件。所以我需要保護核心應用程序免受敵對/編寫不好的插件的影響。我將看看節點沙箱。 – RationalGeek 2013-04-25 17:31:11

回答

1

我也將捐獻給我的圖書館:https://github.com/asvd/jailed。除了對不受信任代碼進行沙箱處理(在受限制的子進程中)之外,還可以導出沙箱中的任何函數集,從而爲沙箱代碼定義自定義API。