2012-03-13 1 views
0

웹 브라우저를 통해 클라이언트의 시스템에 유틸리티를 설치하는 javascript를 실행하려고합니다. 이것들은 비즈니스 요구 사항이므로 나와 함께 해줘. 저는 트릭을하는 것을 함께 쓰는 것처럼 보입니다. 그렇기 때문에 IE의 브라우저 설정을 "스크립팅에 안전하다고 표시되지 않은 ActiveX 컨트롤 시작 및 스크립트"를 사용하도록 변경해야합니다. 이것은 분명히 현실 세계에서는 작동하지 않습니다. 이 설정을 사용하지 않으면 웹 브라우저에 표시되는 모든 내용이 웹 브라우저 하단의 신중한 "페이지에 오류"입니다. 궁극적으로 클라이언트가 ActiveX 컨트롤을 실행할 것인지 묻는 스크립트가 안전하다고 표시되도록하는 것이 좋습니다. 그래서 내 질문에 어떻게 안전 자바 스크립트로 표시 할 수 있습니다. 또한 우리의 웹 페이지는 .NET의 면도기 엔진 (MVC3)을 사용하여 만들어 졌기 때문에 호환성있는 솔루션을 매우 높이 평가할 수 있습니다.안전을 JavaScript로 표시

cshtml snippet 

script language=JavaScript 

function launchExecutable(executableFullPath) 

{ 

var shellActiveXObject = new ActiveXObject("WScript.Shell"); 

shellActiveXObject.Run(executableFullPath, 1, false); 

shellActiveXObject = null; 

} 

script 
.... 
+0

만약 가능하다면 모든 브라우저 별 보안 설정이 완전히 무의미 할 것입니다 ... – BalusC

+0

ActiveX 컨트롤이 실행될 수 있더라도 (인증 된 디지털 서명이 있습니까?) 몇 가지 문제가 있습니다. 'Run'은 사용자의 기본 브라우저에서만 새 탭을 엽니 다. "executableFullPath"가 "http-protocol // executableFullPath.exe"와 같은 경우 브라우저를 통과하지 못합니다. – Teemu

답변

0

이 문제는 당신이 사용하고있는 ActiveX 컨트롤이 스크립트 사용에 안전하다고 표시되지 않도록이다, 당신의 자바 스크립트가 안전하지 않은 것이 아니다. 이 문제를 해결하는 유일한 방법은 안전한 것으로 표시된 ActiveX 컨트롤을 사용하는 것이지만 클라이언트가 해당 컨트롤을 설치하도록해야합니다.

나는 아마도 오류를 감지하는 접근 방식을 사용하고 (try/catch 사용) 사용자에게 해당 옵션을 켜는 방법을 알려주는 메시지를 표시합니다.

+0

모든 답변에 감사드립니다. 나는 털이 많은 질문을하는 것을 알고 있었다. 이것은 비즈니스 요구 사항이며 우리 모두는 비즈니스 업계 사람들이 꿈꾸는 방식을 알고 있습니다. ActiveX 컨트롤을 안전하다고 표시하는 방법은 무엇입니까? 나는 여전히 프론트 엔드에 대한 멍청이 다. 그래서 나는 어떤 제안이라도 고맙게 생각한다. – user1013651

+0

@ user1013651 AFAIK ActiveX 컨트롤을 개발하지 않는 한 할 수 없습니다. 코드를 변경하여 안전하다고 표시해야하며, 다시 컴파일 된 컨트롤을 모든 클라이언트 컴퓨터에 설치해야합니다. 나는 정말로이 일을하는 다른 방법을 조사해야한다고 생각합니다. 보안 설정은 이유가 있기 때문에 존재합니다.이 특정 컨트롤은 임의의 쉘 명령을 실행하는 임의의 웹 사이트에서 사용자를 보호합니다. –

+0

@ user1013651 대안 : 1. 응용 프로그램을 표준 설치 프로그램으로 제공 할 수 있습니다. 2. 설치하려는 응용 프로그램을 개발중인 경우 브라우저에서 설치하는 Click-Once 응용 프로그램으로 만들 수 있습니다. 3. 응용 프로그램을 설치할 ActiveX 컨트롤을 개발하면 구성 요소를 설치하는 데 필요한 표준 IE 메시지를 얻을 수 있으므로 사용자가 쉽게 사용할 수 있습니다. –

1

웹 사이트에 카달로그에 완전한 사용자 권한으로 원하는 모든 작업을 수행 할 수 있기 때문에 안전한 것으로 표시된 ActiveX 컨트롤을 절대 얻을 수 없습니다.

제가 본 적이없는 웹 사이트는 여러분이 말하는 방식으로 응용 프로그램을 설치하지 않습니다. 그들은 클라이언트가 브라우저에 처음 설치되어있는 애플리케이션을 다운로드하고 설치하는 브라우저에 설치하기를 원하는 브라우저마다 브라우저 플러그인을 가지고 있거나 (나는 개인적으로 혐오 스럽다.) 그들은 단지 .exe으로 링크/리디렉션을 제공한다. 또는 .msi 또는 .deb 또는 다운로드 및 설치를 시작하기 위해 사용자가 대화 상자를 클릭해야하는 모든 설치 관리자.

후자의 Javascript는 간단한 리디렉션 (필요한 경우)이며 웹 서버에서 제공하는 파일의 MIME 유형이 올바른지 확인하는 작업입니다.

관련 문제