모듈 기본 모듈

모듈vm

다양한 보안 수준으로 운영 환경을 격리하는 데 사용되는 샌드박스 모듈

격리 샌드박스를 설정하면 스크립트 실행 시 액세스할 수 있는 리소스를 제한하고, 다양한 스크립트 실행 환경을 격리하고, 기본 모듈을 다양한 환경에 맞게 맞춤화하여 전체 운영 환경의 보안을 보장할 수 있습니다.

다음 예에서는 전역 기본 모듈에만 액세스를 제한하는 샌드박스를 만듭니다.assert모듈을 선택하고 두 개의 사용자 정의 모듈 a와 b를 추가합니다.

1 2 3 4 5 6 7 8
var 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

만들다SandBox개체, 참조SandBox

1
SandBox vm.SandBox;

Script

만들다Script개체, 참조Script

1
Script vm.Script;

정적 함수

createContext

컨텍스트 객체 생성

1 2
static Object vm.createContext(Object contextObject = {}, Object opts = {});

호출 매개변수:

  • contextObject: 객체, 상황에 맞는 객체를 지정합니다.
  • opts: 개체, 컨텍스트 옵션을 지정합니다.

결과 반환:

  • Object, 컨텍스트 객체를 반환합니다.

isContext

주어진다면object개체가 사용됩니다.vm.createContext() 상황화를 위해 true를 반환합니다.

1
static Boolean vm.isContext(Object contextObject);

호출 매개변수:

  • contextObject: 객체, 확인할 객체를 지정합니다.

결과 반환:

  • Boolean, 주어진 경우object개체가 사용됩니다.vm.createContext() 상황화를 위해 true를 반환합니다.

runInContext

주어진 contextualizedObject 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.

1 2 3
static Value vm.runInContext(String code, Object contextifiedObject, Object opts = {});

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • contextifiedObject: 객체, 런타임 컨텍스트 객체를 지정합니다.
  • opts: 개체, 실행 옵션 지정

결과 반환:

  • Value, 실행 결과를 반환합니다.

주어진 contextualizedObject 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.

1 2 3
static Value vm.runInContext(String code, Object contextifiedObject, String filename);

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • contextifiedObject: 객체, 런타임 컨텍스트 객체를 지정합니다.
  • filename: 문자열, 스크립트 파일 이름을 지정합니다.

결과 반환:

  • Value, 실행 결과를 반환합니다.

runInNewContext

생성된 컨텍스트에서 code로 지정된 코드를 실행하고 결과를 반환하려면 주어진 contextObject를 사용하세요.

1 2 3
static Value vm.runInNewContext(String code, Object contextObject = {}, Object opts = {});

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • contextObject: 객체, 상황에 맞는 객체를 지정합니다.
  • opts: 개체, 실행 옵션 지정

결과 반환:

  • Value, 실행 결과를 반환합니다.

생성된 컨텍스트에서 code로 지정된 코드를 실행하고 결과를 반환하려면 주어진 contextObject를 사용하세요.

1 2 3
static Value vm.runInNewContext(String code, Object contextObject = {}, String filename);

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • contextObject: 객체, 상황에 맞는 객체를 지정합니다.
  • filename: 문자열, 스크립트 파일 이름을 지정합니다.

결과 반환:

  • Value, 실행 결과를 반환합니다.

runInThisContext

현재 컨텍스트 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.

1 2
static Value vm.runInThisContext(String code, Object opts = {});

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • opts: 개체, 실행 옵션 지정

결과 반환:

  • Value, 실행 결과를 반환합니다.

현재 컨텍스트 내에서 코드로 지정된 코드를 실행하고 결과를 반환합니다.

1 2
static Value vm.runInThisContext(String code, String filename);

호출 매개변수:

  • code: 문자열, 컴파일하고 실행할 스크립트 코드를 지정합니다.
  • filename: 문자열, 스크립트 파일 이름을 지정합니다.

결과 반환:

  • Value, 실행 결과를 반환합니다.