모듈vm
다양한 보안 수준으로 운영 환경을 격리하는 데 사용되는 샌드박스 모듈
격리 샌드박스를 설정하면 스크립트 실행 시 액세스할 수 있는 리소스를 제한하고, 다양한 스크립트 실행 환경을 격리하고, 기본 모듈을 다양한 환경에 맞게 맞춤화하여 전체 운영 환경의 보안을 보장할 수 있습니다.
다음 예에서는 전역 기본 모듈에만 액세스를 제한하는 샌드박스를 만듭니다.assert모듈을 선택하고 두 개의 사용자 정의 모듈 a와 b를 추가합니다.
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');
물체
SandBox
1SandBox vm.SandBox;
Script
1Script vm.Script;
정적 함수
createContext
컨텍스트 객체 생성
1
2static Object vm.createContext(Object contextObject = {},
Object opts = {});
호출 매개변수:
- contextObject: 객체, 상황에 맞는 객체를 지정합니다.
- opts: 개체, 컨텍스트 옵션을 지정합니다.
결과 반환:
- Object, 컨텍스트 객체를 반환합니다.
isContext
주어진다면object개체가 사용됩니다.vm.createContext() 상황화를 위해 true를 반환합니다.
1static Boolean vm.isContext(Object contextObject);
호출 매개변수:
- contextObject: 객체, 확인할 객체를 지정합니다.
결과 반환:
- Boolean, 주어진 경우object개체가 사용됩니다.vm.createContext() 상황화를 위해 true를 반환합니다.
runInContext
주어진 contextualizedObject 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
Object opts = {});
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- contextifiedObject: 객체, 런타임 컨텍스트 객체를 지정합니다.
- opts: 개체, 실행 옵션 지정
결과 반환:
- Value, 실행 결과를 반환합니다.
주어진 contextualizedObject 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.
1
2
3static Value vm.runInContext(String code,
Object contextifiedObject,
String filename);
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- contextifiedObject: 객체, 런타임 컨텍스트 객체를 지정합니다.
- filename: 문자열, 스크립트 파일 이름을 지정합니다.
결과 반환:
- Value, 실행 결과를 반환합니다.
runInNewContext
생성된 컨텍스트에서 code로 지정된 코드를 실행하고 결과를 반환하려면 주어진 contextObject를 사용하세요.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
Object opts = {});
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- contextObject: 객체, 상황에 맞는 객체를 지정합니다.
- opts: 개체, 실행 옵션 지정
결과 반환:
- Value, 실행 결과를 반환합니다.
생성된 컨텍스트에서 code로 지정된 코드를 실행하고 결과를 반환하려면 주어진 contextObject를 사용하세요.
1
2
3static Value vm.runInNewContext(String code,
Object contextObject = {},
String filename);
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- contextObject: 객체, 상황에 맞는 객체를 지정합니다.
- filename: 문자열, 스크립트 파일 이름을 지정합니다.
결과 반환:
- Value, 실행 결과를 반환합니다.
runInThisContext
현재 컨텍스트 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.
1
2static Value vm.runInThisContext(String code,
Object opts = {});
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- opts: 개체, 실행 옵션 지정
결과 반환:
- Value, 실행 결과를 반환합니다.
현재 컨텍스트 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.
1
2static Value vm.runInThisContext(String code,
String filename);
호출 매개변수:
- code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
- filename: 문자열, 스크립트 파일 이름을 지정합니다.
결과 반환:
- Value, 실행 결과를 반환합니다.