2012-06-19 2 views
2

실제로 자식 프로세스를 통해 sanboxing을 수행하고 있습니다. 스크립트를 실행하기 위해 vm.runincontext 메서드를 사용하고 있습니다. stdin.on ('data'function())을 사용하여 child.stdin.write를 사용하여 자식 프로세스에 코드를 전달하고 있습니다 ... 이제 스크립트는 node.js 객체 나 사용자 정의 객체에 액세스 할 수 있습니다. 컨텍스트는 자식 프로세스에 동적으로 전달되며 해당 컨텍스트에서 sanbox를 실행합니다. 현재 자식 프로세스에서 컨텍스트 개체를 만들고 있지만 자식 프로세스에 컨텍스트 개체를 전달하고 싶지 않습니다. 당신은 큰 인 프로세스를 통해 데이터 (예 : 메모리)을 공유하려고 기본적으로 당신이 정말로, 이런 종류의 물건을 할 수 없어 일반적으로node.js 개체를 자식 프로세스에 전달한 다음 해당 개체에 액세스하는 방법

답변

0

없는 노

그러나 nowjs를 사용하면 아주 가까이 얻을 수 있습니다 . nowjs를 확인하고 모든 프로세스를 연결하십시오.

+0

그래서 남은 유일한 방법은 동일한 프로세스에서 vm.runincontext를 사용하는 것입니다. 이는 상당히 위험합니다. –

+0

그게 내가 특정 샌드 박스에서 스크립트를 실행할 수있는 유일한 방법이라고 생각합니다. –

2

귀하가 원하는 것을 고려하십시오. 현재 실행 컨텍스트뿐만 아니라 다른 모든 업스트림 컨텍스트, 전체 전역 네임 스페이스, 파일 설명 자도 직렬화해야합니다.

즉, 이것은 매우 미숙 한 작업량 일 수 있습니다. . :-)

데이터을 직렬화하고 stdout/stdin 핸들을 통해 앞뒤로 보내십시오. 이것이이 문제가 일반적으로 해결되는 방법입니다.

희망이 있습니다.

관련 문제