modulevm
Sandbox-Modul, das zum Isolieren von Betriebsumgebungen mit unterschiedlichen Sicherheitsstufen verwendet wird
Durch die Einrichtung einer Isolationssandbox können Sie die Ressourcen begrenzen, auf die Skripte bei der Ausführung zugreifen können, verschiedene Skriptausführungsumgebungen isolieren und Basismodule für verschiedene Umgebungen anpassen, um die Sicherheit der gesamten Betriebsumgebung zu gewährleisten.
Im folgenden Beispiel wird eine Sandbox erstellt, die den Zugriff nur auf globale Basismodule beschränkt.assertModul und fügen Sie zwei benutzerdefinierte Module a und b hinzu:
1
2
3
4
5
6
7
8var vm = require('vm');
var sbox = new vm.SandBox({
a: 100,
b: 200,
assert: require('assert')
});
var mod_in_sbox = sbox.require('./path/to/mod');
Objekt
SandBox
ErstellenSandBoxObjekt, sieheSandBox
1SandBox vm.SandBox;
Script
ErstellenScriptObjekt, sieheScript
1Script vm.Script;
statische Funktion
createContext
Erstellen Sie ein Kontextobjekt
1
2static Object vm.createContext(Object contextObject = {},
Object opts = {});
Aufrufparameter:
- contextObject: Objekt, gibt das Objekt an, das kontextualisiert werden soll
- opts: Objekt, gibt Kontextoptionen an
Rückgabeergebnisse:
- Object, gibt das Kontextobjekt zurück
isContext
Falls gegebenobjectObjekt wird verwendetvm.createContext() gibt für die Kontextualisierung „true“ zurück
1static Boolean vm.isContext(Object contextObject);
Aufrufparameter:
- contextObject: Objekt, gibt das zu prüfende Objekt an
Rückgabeergebnisse:
- Boolean, falls angegebenobjectObjekt wird verwendetvm.createContext() gibt für die Kontextualisierung „true“ zurück
runInContext
Führt den durch code angegebenen Code innerhalb des angegebenen contextualizedObject aus und gibt das Ergebnis zurück
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
Object opts = {});
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- contextifiedObject: Objekt, gibt das Laufzeitkontextobjekt an
- opts: Objekt, Ausführungsoptionen angeben
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben
Führt den durch code angegebenen Code innerhalb des angegebenen contextualizedObject aus und gibt das Ergebnis zurück
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
String filename);
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- contextifiedObject: Objekt, gibt das Laufzeitkontextobjekt an
- filename: String, geben Sie den Namen der Skriptdatei an
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben
runInNewContext
Verwenden Sie das angegebene contextObject, um den durch code angegebenen Code im erstellten Kontext auszuführen und das Ergebnis zurückzugeben.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
Object opts = {});
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- contextObject: Objekt, gibt das Objekt an, das kontextualisiert werden soll
- opts: Objekt, Ausführungsoptionen angeben
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben
Verwenden Sie das angegebene contextObject, um den durch code angegebenen Code im erstellten Kontext auszuführen und das Ergebnis zurückzugeben.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
String filename);
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- contextObject: Objekt, gibt das Objekt an, das kontextualisiert werden soll
- filename: String, geben Sie den Namen der Skriptdatei an
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben
runInThisContext
Führt den durch code angegebenen Code im aktuellen Kontext aus und gibt das Ergebnis zurück
1
2static Value vm.runInThisContext(String code,
Object opts = {});
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- opts: Objekt, Ausführungsoptionen angeben
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben
Führt den durch code angegebenen Code im aktuellen Kontext aus und gibt das Ergebnis zurück
1
2static Value vm.runInThisContext(String code,
String filename);
Aufrufparameter:
- code: String, gibt den Skriptcode an, der kompiliert und ausgeführt werden soll
- filename: String, geben Sie den Namen der Skriptdatei an
Rückgabeergebnisse:
- Value, das laufende Ergebnis zurückgeben