IE8 beta1에서 드러난 ActiveX 관련 Issue 중 일부

IE8 beta1에서 드러난 ActiveX 관련 Issue 일부를 언급한다.

 

ATL Thunk DEP

VS 6.0 ATL ActiveX Control 사용하는 경우에 IE8에서 Issue 있는 , Older ATL version program Data Execution Prevention(DEP) 따라서 Access Violation(AV) 발생할 있다. 이는 ATL에서 CWindow class thunk 라는 기술을 통해서 implementation되어 있기 때문인데, thunk 기술은 heap 임의의 할당된 memory region generation되는 작은 코드조각이라 보면 된다. DEP enabled되면, Heap region execution flag set되지 않았을 , 문제가 있으며, Older version ATL execution flag Set하지 않은 상태에서 thunk 기술을 사용하므로, 이로 인하여 Crash 발생할 있다.

IE7에서는 보안상의 이유로 DEP enable/disable 있는 option(“Enable memory protection to help mitigate online attacks”) 두었으며, default Disable 이다. 하지만, IE8에서는 Enable default 이므로, older version ATL ActiveX Control 인하여 Crash 있다.
이를 위해서는 older version ATL 사용하고 있다면, ATL 7.1 SP1 이후의 version(Visual Studio 2005 경우는 ATL 8.0)으로 upgrade 하야 rebuild 필요가 있다. 그리고, /NXCompat 이라는 linker option set하여 DEP/NX 호환성을 인식할 있도록 해야 한다.

 

Per-Site ActiveX

사용자가 ActiveX Control 포함하고 있는 Web site 접근할 , IE8에서는 해당 Control 실행에 대해서 제한을 가할 있다. 예를 들어, 특정 Web Site에서만 허용할 , 아니면, 모든 Web Site에서 허용할 , 그리고, 전혀 허용하지 않을 지를 ActiveX install하기 전, 브라우저 상단부분의 Information Bar 통해 설정할 있는 , 이러한 Check Per-Site ActiveX 라고 한다. 일단, 이미 설치된 Control 대해서도 추가기능관리자에서 허용여부를 수정할 있다. 만일, 관리자라면, Group policy 의해서 이를 제어할 있는 , 다음의 registry key 통해서 관련 ActiveX Control 허용할 Domain 정의할 있다.

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\{CLSID}\iexplore\AllowedDomains\{Domain or *}

 

그리고, 개발자는 SiteLock Template 이용할 있다. (참조: http://blogs.msdn.com/ie/archive/2007/09/18/developing-safer-activex-controls-using-the-sitelock-template.aspx  The SiteLock Active Template Library (ATL) template enables ActiveX control developers to restrict the use of an ActiveX control to a predetermined list of domain names or security zones. This limits the ability of other Web pages to reuse the control. )

 

Per-User(Non-Admin) ActiveX

Windows Vista IE8 경우, Standard User ActiveX Control 자신의 profile하에서 설치를 하게되는 경우, 이는 Admin privilege 갖을 필요가 없다. 그러므로, 이것에 기인하여 일반 사용자이거나 Administrator이거나 ActiveX Control 본인의 개인 profile 하에서 설치한다면 이상 UAC 창이 Open되는 없이 실행할 있다. 또한, Administrator privilege 갖은 상태에서 설치할 경우에는 per-user 또는 per-machine 결정할 있다. 하지만, 이러한 benefit 관련하여 이미 설치된 기존의 Control들은 관련사항이 없이 기존의 rule 따른다.

이러한 Non-Admin ActiveX Installation Package 관련해서는 .inf file [Deployment] Section 다음과 같은 flag 필요하다.

 

RegistrationScope

Optional.

machine: [Default] The ActiveX supports installation at machine scope (all users).

user: The ActiveX supports Installation for the current user only.

Both scopes can be supported. In that case, they need to be separated by the | character.

 

by 강세윤 | 2008/07/04 15:34 | 정리되지 않은 기술 | 트랙백 | 덧글(0)
트랙백 주소 : http://byung.egloos.com/tb/4466193
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >