현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

SafeCtl.exe ActiveX 컨트롤에서 IObjectSafety 구현합니다.

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:164119
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
요약
the SafeCtl.exe 샘플은 MFC 기반 ActiveX 컨트롤의 코드를 게시한 사람을 나타내려면 수정하는 방법 및 여부 컨트롤에 손상되었습니다. 샘플 컨트롤에 대한 초기화 스크립트 사용에 안전 안전하고 여부를 확인하는 데 유용한
추가 정보
Microsoft 다운로드 센터에서 다음 파일을 사용할:
Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서의:
119591Microsoft 온라인 서비스 지원 파일을 구하는 방법
Microsoft이 이 파일에 바이러스가 있는지 검색합니다. <a0>$$$$</a0><a1>$$$$</a1><a2>$$$$</a2><a3>$$$$</a3><a4>$$$$</a4><a5>$$$$</a5><a6>$$$$</a6>.. <a0>$$$$</a0><a1>$$$$</a1><a2>$$$$</a2><a3>$$$$</a3><a4>$$$$</a4><a5>$$$$</a5><a6>$$$$</a6><a7>$$$$</a7><a8>$$$$</a8><a9>$$$$</a9>..

사용자가 Internet Explorer 3.0 및 버전 관련 웹 페이지에서 ActiveX 컨트롤 형식의 코드를 추가할 수 있습니다. <object>태그에 컨트롤을 지정하는 데 사용됩니다. 컨트롤의 인스턴스를 만든 후에는 컨트롤의 지속성 인터페이스는 통해 해당 특성은 설정할 수 있습니다. 예를 들어, Internet Explorer에서 HTML 페이지를 구문 분석하는 동안 <object>태그 컨텍스트에서 발생한 각 <param>태그에 대한 속성 모음에 해당 컨트롤을 통해 Internet Explorer 전달하는IPersistPropertyBag인터페이스입니다. 또한 메서드를 실행하고 컨트롤의 자동화 인터페이스를 통해 노출되는 속성을 수정하여 해당 페이지에 포함된 스크립트를 통해 컨트롤의 동작을 지정할 수 있습니다.

최종 사용자가 코드를 게시한 사람을 확인하고 서명한 이후로 아무도 해당 코드를 무단 가지고 있는지 Authenticode 코드 서명 기술이 있습니다. 신뢰할 수 없는 값 속성이 초기화될 때 또는 자동화 모델을 신뢰할 수 없는 스크립트에 의해 좌우됩니다 때 코드가 안전한지 보증하지 않습니다. 이러한 잠재적인 보안 피하기 위해 hazards 를 통해 액세스할 수 있는 기본 Internet Explorer 보안 설정을 사용하여보안Internet Explorer의 탭옵션속성 시트, 컨트롤 자체는 해당 구성 요소 범주를 구현하는 것으로 등록할 컨트롤을 구현하는 할 필요가 있는IObjectSafety인터페이스입니다. 이 샘플은 모두 보여 줍니다.

Internet Explorer 컨트롤에 대한 쿼리를 먼저 HTML 페이지에 포함된 컨트롤의 속성을 설정합니다IObjectSafety입니다. 지원되는 경우 다음 Internet Explorer 호출하는 경우SetInterfaceSafetyOptions이 인터페이스에서 메서드는 값을 전달하면 INTERFACESAFE_FOR_UNTRUSTED_DATA 지속성 인터페이스의 인터페이스 식별자 (IID) 뿐만 아니라. 여기서 속성을 <param>태그를 통해 초기화된 경향이, HTML 페이지에 오늘날 IID를 IID_IPersistPropertyBag 있습니다. IID는 보호할 수 일부 인터페이스가 있지만 다른 사람에 대해 및 중요하지 않은 이 예제의 안전 넣을 수 상황에 맞게 제공됩니다. 샘플 구현을 인터페이스를 지원하는지 확인합니다. 컨트롤을 사용하여 해당 지속성 인터페이스를 통해 초기화된 및 지속성 인터페이스를 지원하는 데이터 관계 없이 클라이언트 시스템에 없는 피해를 할 수 있으면 컨트롤의 구현을 사용하여IObjectSafety::SetInterfaceSafetyOptions메서드는 S_OK 를 반환해야 합니다. 그렇지 않으면 E_FAIL 되돌려야 합니다.

스크립트 실행, 페이지에 포함된 모든 허용하기 전에 Internet Explorer 마찬가지로 호출을 통해 컨트롤IObjectSafety:: SetInterfaceSafetyOptions메서드가 있지만 값을 전달하는 대신 INTERFACESAFE_FOR_UNTRUSTED_CALLER 및 일부 스크립트 IID 인터페이스, 보통 IID_IDispatch 사용됩니다. 컨트롤이 S_OK 또는 E_FAIL 적절하게 반환해야 합니다.

컨트롤을 지원하지 않는 경우IObjectSafety, Internet Explorer 구성 요소 범주 관리자를 사용하는 컨트롤을 "초기화에 안전" 범주, CATID_SafeForInitializing, CATID_SafeForScripting, "스크립트 사용에 안전" 범주를 각각 구현하는 경우 참조하십시오.

컨트롤을 지원하지 않는 경우IObjectSafety및 아닌 해당 구성 요소 범주를 구현하는 것으로 등록되어 있고 Internet Explorer 보안 수준을 기본값인 높음으로 설정되어 있으면 Internet Explorer가 컨트롤의 속성을 초기화하지 것입니다 않으며 해당 페이지에 포함된 모든 스크립트가 실행됩니다. 이 시나리오에서는 최종 사용자가 다음과 같은 텍스트가 있는 대화 상자가 나타납니다:
피할 잠재적인 보안 위반
가 이 페이지를 안정형 안전 표시할 수 없는 액티브 콘텐트가 포함되어 있습니다. 컴퓨터를 보호하려면 이 콘텐츠가 표시되지 않습니다.
다음 Paul Johns 문서에서 가져온 지침 목록이며 "서명 및 표시 ActiveX 컨트롤:"
  • 컨트롤을 조작하는 않은 파일 시스템.
  • 컨트롤 등록 및 자체 등록을) 제외한 레지스트리 조작하는.
  • 컨트롤이 아닌 overindex 배열 또는 메모리를 잘못 조작할.
  • 컨트롤 (확인하고 수정하는) 모든 입력을 포함하여 초기화, 메서드 매개 변수 및 속성 집합 함수.
  • 컨트롤의 데이터를 사용자가 제공한 또는 대한 것입니다 잘못 않습니다 사용자가.
  • 컨트롤을 여러 가지 시나리오를 테스트할 않았습니다
자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오:컨트롤 작성자는 있는지 확인할 것을 위의 조건에 있어야 이미 충족하는 외에 다른, 생각되는 수 있는 경우 사용자가 고려해야 모두 지원IObjectSafety및 해당 구성 요소 범주 구현할 때 해당 컨트롤을 등록합니다. 이러한 메서드는 각각 장단점이 목록을 검토하고 해당 Paul Johns 문서 "서명 및 표시 ActiveX 컨트롤." 섹션을

컴파일 수

Visual C++ 5.0 또는 Microsoft Visual C++ 6.0 샘플을 만들어야 합니다. 보관 파일에서 파일을 추출한 후 Microsoft 개발자 Studio에 Safectl.mdp 프로젝트를 로드하고 프로젝트를 빌드하십시오. 빌드 프로세스의 일부로 컨트롤 자체를 등록해야 합니다.

경고이 절에 나열된 두 전처리기 기호를 나중에 사용하여 샘플을 수정하기 전에 이를 이미 않은 빌드 컴퓨터에 등록되어 있으면 컨트롤 등록을 취소할 수 있습니다. 이렇게 하려면 Regsvr32.exe 함께 실행할 경우/u컨트롤 스위치입니다. 현재 프로젝트에 대해 이렇게 Developer Studio 도구는 사용자 지정 항목을 추가할 수도 있습니다. 에 있는도구메뉴를 클릭합니다사용자 지정, 클릭합니다,도구탭을 클릭한 다음 정보를 사용하여 새 항목 만들기:
                Name: &Un-register ActiveX Control             Command: e:\Program Files\DevStudio\SharedIDE\BIN\REGSVR32.EXE           Arguments: /u /v "$(TargetPath)"   Initial Directory: $(TargetDir)				
이 단계에서 사용 전에 추가 또는 제거 컨트롤 등록을 위해 "도구/해제-레지스터 ActiveX 컨트롤" 항목 관련 샘플 전처리기 정의를.

이 및 해당 "스크립트 사용에 안전", "초기화에" 구현 파일로 등록됩니다 해당 컨트롤을 빌드하려면 구성 요소 범주는 하십시오:
  1. 따라 해당프로젝트메뉴를 클릭합니다설정.
  2. 을 사용하여C++탭을 클릭한 다음 전처리기 정의를 정의하는:
    L_USE_COMCAT
  3. 확인닫으려면 해당설정대화 상자와 다음 다시 제어.
대신 구현하는 있도록 컨트롤을 빌드할 수IObjectSafety이전 단계가 수행하되 바꿀 L_USE_COMCAT L_IMPL_OBJECTSAFETY.

올바른 전처리기 기호를 모두 정의할 수도 있습니다. 이러한 기호는 이 프로젝트에 있는지 확인하십시오. 기본적으로 프로젝트의 빌드 설정을 모두 전처리기 기호를 정의합니다.

실행

후 샘플 컨트롤 내장된 이미 가지고 있는 것으로 등록된 성공적으로 Internet Explorer를 시작하고 엽니다 Safectl.htm 페이지에 포함되어 있는 예제.

경우 컨트롤을 이미 구성되었습니다 안전한 것으로 자체 등록 또는 구현IObjectSafety, 컨트롤의 캡션을 읽어 합니다 "안전 초기화!" 컨트롤을 클릭할 때 다음과 같은 메시지가 나타납니다:
내가 스크립팅에 안전한 것으로 합니다!
그 높은 안전성 설정에 설정되어 있으면 Internet Explorer 관련된 스크립트 실행 및 다음과 같은 메시지가 나타납니다:
초기화하는 데 안전하지 않습니다!


참고작성 중인 경우 브라우저에서 웹 페이지를 새로 고쳐 이 샘플은 다른 구성을 테스트하는 확인하십시오. 페이지를 새로 고치면 사용자가 컨트롤의 캐시된 버전을 최신 빌드를. 대신 사용하고 있거나
참조
, 안전 안전성 API에 대한 자세한 내용은 참조 API 참조 ActiveX SDK 온라인 설명서를.

코드 서명에 대한 자세한 내용은 참조 "서명 함께 Microsoft Authenticode 기술을" ActiveX SDK 온라인 설명서.

자세한 내용은 구성 요소 범주 ActiveX SDK 온라인 설명서를. "구성 요소 범주" 항목을 참조하십시오

COM (구성 요소 개체 모델)을 구현하는 방법에 대한 자세한 내용은 MFC 인터페이스, Microsoft 기술 자료의 다음 문서를 참조하십시오:
141277Visual C ++를 사용하여 MFC 응용 프로그램에서 인터페이스를 재정의하는 방법
개발하는 방법에 대한 자세한 내용은 ActiveX 컨트롤 및 웹 사이트를 배포하는 방법은 다음 Microsoft 웹 사이트를 방문하십시오:
SAFE SAFETY SafeCtl
참고 이것은 Microsoft 기술 지원 서비스 내에서 직접 작성한 “빠른 게시” 문서입니다. 여기에 포함된 정보는 발생한 문제에 대해 있는 그대로 제공됩니다. 이 문서는 즉시 참조할 수 있도록 빠르게 작성되어서 표기상의 오류가 포함되어 있을 수 있고 언제든지 예고 없이 수정될 수 있습니다. 기타 고려 사항은사용 약관을 참조하십시오.정보

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 164119 - 마지막 검토: 01/12/2015 15:55:22 - 수정: 2.0

Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 6.0, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 5.0 Professional Edition

  • kbnosurvey kbarchive kbdownload kbfile kbinfo kbsample kbmt KB164119 KbMtko
피드백