2014-11-14 5 views
-1

사용자가 노드 JS에서 프로그래밍 한 내 앱 중 하나에 대한 맞춤 플러그인을 만들도록하고 싶습니다.노드 JS의 한도

나는 동적 라이브러리와 비슷한 방법을 사용하지만 노드 모듈을 사용한다고 생각했습니다. 문제는 사용자가 네트워크를 부적절하게 사용하거나 파일 시스템에 액세스하는 등의 유해한 작업을 수행하는 것을 원하지 않는 것입니다.

특정 모듈에 대한 NODE Native API를 제한 할 수있는 방법이 있습니까?

답변

-1

나는이 작업을 수행하는 방법을 설명합니다. 트릭은 with 연산자를 사용합니다.

는 예를 들어, 당신은 사용하여 브라우저에서 일부 API에 대한 액세스를 제한 할 수 있습니다

with({windows: null, document: null: XMLHttpRequest: null}){ 
    console.log(document) 
} 
0

솔루션 중 하나는 원치 않는 API 호출없이 노드를 다시 컴파일하는 것입니다.

이 작업을 수행하는 또 다른 방법은 프로세스가 시작된 후 원숭이가 원하지 않는 전화와 원치 않는 모듈을 패치하는 것입니다.

> var fs = require("fs"); 
> fs.openSync("/etc/passwd", 0); 
12 
> fs.openSync = function(){} 
> var fs = require("fs"); 
> fs.openSync("/etc/passwd", 0); 
'Not allowed' 

는 같은 방법 require.reload 원숭이 패치도해야하고이 우회 할 수있는 방법을 다른 사람에 대해 생각합니다.

2

누군가 서버에 코드 실행 수준 액세스 권한을 부여하면 실제 방어가 의심 스럽습니다. 최선을 다해 구멍이 발견되면 플러그를 꽂으려는 무기 경쟁에 빠지게됩니다.

고객이 제품 기능을 확장 할 수있게하려면 고객 제품과 인터페이스 할 API를 개발해야합니다. 이렇게하면 공격 영역이 제한되고 응용 프로그램에 대한 모든 액세스 지점을 제어 할 수 있습니다.