2014-11-18 2 views
-1

저는 응용 프로그램을 작성 중이며 Node.js를 사용하여 빌드하려고합니다. 본질적으로, 아이디어는 노드가 일부 프로세스를 시작하고 종료하도록하는 것입니다. 내가 서버 (윈도우 머신), 나는 '는 Win32'를 얻을를 호스팅하는 동일한 컴퓨터의 브라우저를 사용하면 좋은, 위의 예에서Node.js : 클라이언트 측을 실행하는 코드 얻기

http.createServer(function (req, res) 
{ 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 

    console.log('platform is: '); 
    console.log(process.platform); 

    if (queryObject.launch == "yes") 
    { 
     fun(); 
    } 
}).listen(1337, '0.0.0.0'); 

:이 같은 서버를 실행합니다. 그러나 Linux VM의 브라우저에서 서버에 액세스하면 여전히 'win32'가 표시됩니다. 이것은 코드가 여전히 서버 측을 실행 중임을 나타냅니다. 클라이언트 측을 실행하도록 할 수있는 방법이 있습니까?

+0

nodejs IS 서버 쪽 노드의 전체 지점 – lascort

+1

웹 서버를 만들고 있습니다. 물론 서버에서만 실행됩니다. 클라이언트 측을 실행할 웹 서버의 유일한 코드는 브라우저 엔진이 실행될 웹 페이지 (노드가 아님)로 반환하는 것입니다. 그런데도 ** 브라우저 **에는 ** 프로세스를 죽일 수있는 권한이 없습니다 **; 그것은 절대적으로 엄청난 보안 위험이 될 것입니다! 어떤 웹 사이트든지 당신의 기계에 무작위 과정을 죽일 수 있었다! 노드가 클라이언트 측에서 프로세스를 종료하도록하는 유일한 방법은 * 클라이언트 시스템에서 Node를 시작하는 것입니다. 여기서 최종 목표는 무엇입니까? 현재의 접근 방식은 거의 틀림없이 나쁜 것입니다. – jpmc26

답변

2

여기서하고있는 일은 Node.js 서버에서 코드를 실행하는 것입니다. 클라이언트에서 코드를 실행하려면 다른 웹 기반 JavaScript 코드와 마찬가지로 클라이언트의 브라우저에서 일부 JavaScript 코드를 다운로드하여 브라우저에서 실행해야합니다. 그러나 자바 스크립트 보안 모델은 자바 스크립트 코드가 사용자가 염두에 두어야 할 일 (예 : 프로세스보기 또는 종료)을하지 않도록 명시 적으로 금지합니다.

프로세스를 원격으로 종료해야하는 경우 한 컴퓨터에서 다른 컴퓨터로 SSH 연결을 설정하는 것이 좋습니다. 그런 다음 서버에서 프로세스를 클라이언트에 연결하고 적절한 셸 명령을 실행하여 명령을 로컬에서 실행하는 것처럼 프로세스를 종료 할 수 있습니다. 그러나 이러한 솔루션을 사용하려면 클라이언트 시스템에 액세스해야합니다. 가장 기본적인 컴퓨터 보안 시스템의 요점은 서버에 연결된 임의의 컴퓨터로 수행하려는 작업을 정확히 방지하는 것입니다.

+0

감사합니다. 다른 해결책을 사용하겠습니다. – easythrees

관련 문제