2009-10-07 1 views
4

자바 스크립트에서 호출 할 때 mshtml.HTMLDocument에 액세스하는 .NET 클래스 라이브러리 프로젝트를 빌드합니다. 신뢰할 수있는 사이트의 .NET 구성에서 권한을 모든 권한으로 변경 한 이후로 모든 것이 내 컴퓨터에서 제대로 작동합니다.브라우저에서 ActiveX/.Net 클래스 라이브러리를 설치하라는 메시지 표시

그러나 최종 사용자는 Internet Explorer에서 Windows Update와 마찬가지로 메시지를 표시하고 싶습니다.

강한 이름과 자동 서명 된 인증서를 사용하여 어셈블리를 불렀고 비 관리 코드 SecurityPermission을 주장했지만 여전히 사용자에게 묻는 '노란 막대'가 없습니다.

누구나이 메시지를 표시하는 방법을 알고 있습니까? 감사합니다

나중에 편집 : 좀 더 세부 정보 : 나는 <object classid="dllname.dll#namespace.classname" ><object>로 구성 요소를 삽입하고 그것은 작동하지만, 보안 권한이 없습니다.

<object classid="clsid:..guid.." codebase="dllname.dll#-1,-1,-1,-1"></object>처럼 퍼가기 만하면 팝업을 설치할 수있는 권한이 있지만 개체를 ​​인스턴스화 할 수 없습니다.

업데이트 : 필자는 클래스를 COM 용으로 작성하고 Safe-for-Scripting을 구현하여 MSI를 작성하고 .CAB 파일에 저장했습니다. 사용자가 신뢰할 수있는 루트에 내 인증서를 갖고 있으면 작동합니다.

신뢰할 수 없다면 작동하지 않습니다. (사용자에게 질문하지 않습니다. .. .. 다음 ActiveX 파일을 차단했습니다.) 은 실제로을 의미합니다. 내 돈을 SSL 인증서?

+1

왜 ActiveX 대신 Silverlight를 사용하지 않으시겠습니까? 많은 사람들이 보안 문제로 인해 ActiveX를 사용하지 않습니다. –

+0

글쎄, 실제로 WIALib를 통해 스캐너를 사용하고, _then_는 스캔 한 이미지를 게시합니다. 실버 라이트 또는 플래시를 사용하여 afaict를 검사 할 수는 없습니다. – Vlagged

+0

ClickOnce 앱을 제공하는 것이 더 간단하지 않습니까? 관리 코드에서 뛰어 넘을 보안 경계가 훨씬 적습니다. Google 크롬 설치 프로그램이 얼마나 매끄러운 지 살펴보십시오. –

답변

4

귀하의 질문은 다음과 같아야합니다. IE에서 (이전에 알 수없는) 인증서를 설치하라는 메시지를 사용자에게 강요하여 서명되고 안전한 ActiveX 컨트롤이 실행되도록 할 수 있습니까? 페이지? (질문이 아닌 경우 의견을 말하고 수정할 수 있습니다.)

짧은 대답 : no. 코드 서명을 위해 $$$을 껍질을 벗겨야합니다. 인증서를 신뢰할 수있는 기관에서. 말에는 신뢰할 수있는 기관이 없기 때문에, 부호있는 유사한 알 수없는 인증서로 서명되고, 보안 관점에서

:

긴 대답 (이 규칙의 SSL 인증서에서, AFAIK, 다른) 클라이언트는 코드를 신뢰할 수 있습니다. 그리고 IE의 기본 설정은 서명되지 않은 ActiveX 컨트롤을 다운로드하여 사용할 수 없도록하는 것입니다.

당신이하려는 일이 허용된다면 정통한 공격자는 단순히 인증서를 만들고 서명하여 사용자가 쉽게 공격 코드를 실행할 수있게 할 수 있습니다.

확실하게 해결 방법이 있지만 클라이언트가 IE 설정을 변경하거나 인트라넷 설정에서 관리자가 클라이언트 설정을 변경하도록 조치를 취해야합니다. 자신의 CA와 문제 인증서를 만들 수

Internet Explorer가 신뢰 인증 기관 공격자 포함 사람에 구성되지 않은 :

여기 TechNet의 (http://technet.microsoft.com/en-us/library/cc505863.aspx)에서이에 대한 몇 가지 추가 정보를 원하시면입니다.따라서 인터넷 Explorer는 기본값으로 까지 모든 CA를 신뢰하지 않습니다. 대신 Internet Explorer 은 소수의 공용 CA 만 신뢰합니다. 신뢰할 수없는 CA에서 인증서를 발급 한 경우 해당 웹 사이트가 공용 인터넷에있는 경우 서버 관리자는 신뢰할 수있는 CA로부터 인증서를 얻어야합니다. 웹 사이트가 인트라넷에있는 경우 클라이언트 관리자는 Internet Explorer가 발급자 CA를 신뢰하도록 구성해야합니다.

+0

감사합니다 저스틴, 당신은 그것을 잘 요약했습니다. 그러나, 나는 부호가없는 코드 코드를 전혀 허용하지 않고 (프롬프트조차하지 않고) 조금 지나치게 과열되어 있음을 발견했다. 나는 신뢰할 수없는 HTTPS 화면처럼 무서운 화면을 선점했을 것입니다. 그러나 무시할 수있는 옵션이 있습니다. 존재하지 않습니까? – Vlagged

+0

Nope. 이 시나리오는 특별한 화면을 보증하기에 충분하지 않습니다. 또한 합법적 인 게시자 (실제 인증서를 구매하거나 sysadmin이 고객에게 인증서를 보내도록 유도하는 방법)에 대한 쉬운 해결 방법이 있기 때문에이 시나리오에서 Microsoft가 특수 케이스 UI를 구축하는 데 별다른 자극을받을 수 없습니다. –