2016-06-10 10 views
2

Ich arbeite an Plugin-System für meine sails.js-Anwendung. Aus Sicherheitsgründen muss ich sails globale Variable loswerden, die Daten wie Inhalt der Konfigurationsdateien usw. enthält. Ich möchte es nicht global aufheben, da dies meine Anwendung brechen würde.Globale Dateien in bestimmten Dateien nicht definieren

Einstiegspunkt des Plugin würde aussehen wie folgt:

module.exports = function (pluginManager) { 
return { ... } 
} 

Wo pluginManager die einzige erlaubte Bezug auf den Code der Anwendung sein würde.

Ist es möglich, Plugin-Code in einer Sandbox-ähnlichen isolierten Umgebung auszuführen? Ich überlegte, child_process API zu verwenden, aber ich weiß nicht, wie viel es Leistung und Stabilität der Anwendung beeinträchtigt.

+1

Wow, Segel verwendet globale Variablen? Was für eine schreckliche Designwahl! –

+0

Ja, aber von der anderen Seite zu verlangen, jedes Modell wäre ziemlich schmerzhaft. – Selenir

Antwort

0

In Ihrem globals.js ich die Segel Instanz auf false gesetzt würde, genau wie:

Segel: true

Dennoch könnte man auf Globals immer noch Zugriff auf über req._sails.