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.
Wow, Segel verwendet globale Variablen? Was für eine schreckliche Designwahl! –
Ja, aber von der anderen Seite zu verlangen, jedes Modell wäre ziemlich schmerzhaft. – Selenir