2013-04-25 17 views
7

Sono un noob completo, quindi mi scuso se questa domanda ha una risposta ovvia.Plugin sandboxed per Node.js

Sto cercando di creare un'app Web che eseguirà plug-in da fonti non attendibili (ad esempio, comunicazioni della community). Quindi ho bisogno di bloccare quei plugin in una sandbox in cui è consentito solo un determinato accesso (non è possibile scrivere su disco, ecc.). Idealmente, il plugin sarebbe in grado di utilizzare solo determinati pacchetti e API del nodo approvati.

E 'possibile nel nodo? In tal caso, puoi indicarmi un pacchetto o una documentazione che mi consentirà di iniziare?

+0

C'è un modulo chiamato "node-sandbox" su github. In pratica esegue codice non affidabile in un altro processo. Questo è un IMO molto semplice ma può fare il lavoro. Di solito leggo il codice molto velocemente quando scarico un nuovo modulo da github per trovare strane irregolarità e non ne ho mai trovato uno solo. So che questo non è il massimo dal momento che il codice cambia tra gli aggiornamenti, ma credo che dobbiamo fidarci delle persone ad un certo punto. –

+0

Beh, non posso lasciarlo nel mio caso, perché accetterò il codice "automaticamente" come plugin. Quindi ho bisogno di proteggere l'app principale da plugin ostili/scritti male. Daremo un'occhiata a node-sandbox. – RationalGeek

risposta

1

Vorrei anche contribuire all'elenco con la mia libreria: https://github.com/asvd/jailed. Oltre alla sandboxing del codice non affidabile (in un sottoprocesso limitato), offre l'opportunità di esportare qualsiasi serie di funzioni all'interno della sandbox, definendo quindi un'API personalizzata per il codice sandbox.