ActiveX控件与IE7安全分析

原创 2008年09月29日 20:34:00

http://www.solnet.cn/showart.asp?id=6
http://support.microsoft.com/kb/161873/en-us
http://www.microsoft.com/china/MSDN/library/NetComm/ActiveX+Security.mspx?mfr=true

都说ActiveX危险,那么为什么XmlHttpRequest以及MediaPlayer都是用ActiveX的方式创建的,却没有问题?原来,这是因为这些ActiveX组件都声明自己是脚本安全的,
而IE的中级安全设置上,是允许脚本安全的ActiveX创建,并且不予警告的。

IE怎么知道一个插件是脚本安全的?它是通过以下两个办法。
一是查询ActiveX组件是否实现了IObjectSafety接口,并且返回脚本安全;
二是查询ActiveX组件是否在注册表的Component Category Manager里表明自己实现了CATID_SafeForInitializing和CATID_SafeForScripting。


详情请参见MSDN的文章:

About IObject Safety Extensions for Internet Explorer(http://msdn2.microsoft.com/EN-US/library/aa768181.aspx)

Safe Initialization and Scripting for ActiveX Controls(http://msdn2.microsoft.com/EN-US/library/aa751977.aspx)


一个ActiveX组件不能随随便便的把自己声明为脚本安全的,万一被人利用了咋办?因为只要在系统中注册了,任何网站都可以使用该ActiveX组件,有可能为做出损害用户利益的事情来。所以,作为一个负责任的开发者,在把自己的ActiveX组件声明为脚本安全以前,一定要再三思考,有没有可能被别人恶意使用?特别是有访问本地资源功能的组件,更要小心,别让人破坏了用户的数据或是窃取了信息。


所以,你一定要看一看这篇MSDN的文章:Designing Secure ActiveX Controls(http://msdn2.microsoft.com/EN-US/library/aa752035.aspx)

虽然微软做了以上的防范,但是存在安全隐患。比如为了检查ActiveX组件是否支持IObjectSafety接口,你必须先把ActiveX组件给创建了。
在你发现它根本就不支持IObjectSafety之前,相关的Dll就会被加载,初始化代码已经执行。天知道那些ActiveX组件创建后会不会有什么安全隐患,即便没有,
也是浪费系统资源的。

下面这篇文章IObjectSafety and Internet Explorer (http://www.securityfocus.com/archive/1/391803) 就提出了一些改进意见,认为应该先检查Component Category Manager里的值,
因为这只是静态的检索不需要真正加载ActiveX组件。如果注册表表明其是安全的,再加载和检查IObjectSafety接口。
后面这一步是否有点多余?难道是怕有人篡改了注册表?也有可能。因为ActiveX组件是经过数字签名的,所以不可能生加上IObjectSafety接口。
所以,需要双重防范。


因此,ActiveX还是带有很多安全隐患的。所以,为了避免麻烦,不要随便浏览不靠谱的网页。
IE7 规范(http://blogs.msdn.com/ie/archive/2006/02/14/532211.aspx)
IE7 ReleaseNote(http://msdn.microsoft.com/en-us/ie/aa740486.aspx

http://www.microsoft.com/china/MSDN/library/NetComm/ActiveX+Security.mspx?mfr=true)

Protect mode
http://msdn.microsoft.com/en-us/library/bb250462.aspx#wpm_sftup

http://msdn.microsoft.com/en-us/library/bb250462.aspx#upm

http://support.microsoft.com/kb/240797

http://msdn.microsoft.com/en-us/library/bb250471.aspx
http://msdn.microsoft.com/en-us/library/bb250493.aspx
http://blogs.msdn.com/ie/archive/2006/02/14/532211.aspx
http://www.microsoft.com/china/MSDN/library/NetComm/ActiveX+Security.mspx?mfr=true

控件数字签名
http://www.wotrust.com/support/signcode_guide.htm

http://www.eyuansoft.com/blog/user1/1/archives/2008/2460.htm

如何将MFC ActiveX控件标记为安全

在**Ctrl.cpp中增加如下函数  HRESULT   CreateComponentCategory(CATID   catid,   WCHAR*   catDescription)     ...
  • pengpeng98
  • pengpeng98
  • 2007年07月04日 14:18
  • 3146

如何将 MFC ActiveX 控件作为安全标记为脚本和初始化

http://support.microsoft.com/kb/161873/zh-cn默认状态下,MFC ActiveX 控件未标记为脚本安全和初始化的安全。当该控件的运行时在 Internet E...
  • sding
  • sding
  • 2010年10月12日 11:50
  • 1518

将ActiveX控件标记为安全

IE ActiveX 控件 安全
  • lonelyrains
  • lonelyrains
  • 2016年03月15日 20:42
  • 1411

ActiveX控件安全初始化之一:实现ISafeObject接口

转自:http://www.cnblogs.com/carekee/articles/1772201.html ActiveX控件打包成cab后,在脚本中调用中时,要保证控件的安全性才能...
  • rankun1
  • rankun1
  • 2016年06月22日 17:29
  • 1445

剖析ActiveX控件的安全问题:

转贴来源于:http://www.mangbar.com/bar/docview/5d023b2114cbbf1c0114d8b73928167f说明:此文只是针对了IE6.0及以下版本的浏览器,对于...
  • tiger119
  • tiger119
  • 2007年12月22日 07:52
  • 1170

ActiveX控件如何去除在Web使用时的安全警告

    Web上使用ActiveX控件时,用两种安全防护,一是下载,二是使用。对于未签名的ActiveX控件,在IE的选项中有相应处理。我们不考虑下载,假定控件已在用户机注册(可能是额外的小安装包),...
  • tiger119
  • tiger119
  • 2006年05月24日 18:25
  • 4048

web上面开发安全控件使用Activex控件

首先要说明的是 web上用activex是门被抛弃的技术。为什么这么说,主要基于以下几个原因:1.功能过于强大,强大到一旦安装,他所具有的权限可以做任何事,极易被人利用做坏事(相信大家都有浏览网页后莫...
  • ghevinn
  • ghevinn
  • 2013年10月22日 13:36
  • 3409

当前安全设置禁止运行该页中的ActiveX 控件 解决方法

当前安全设置禁止运行该页中的ActiveX 控件 解决方法
  • pipi0714
  • pipi0714
  • 2011年04月01日 08:12
  • 5103

关闭是否只查看安全传送的网页内容提示框 和 是否允许运行软件,如ActiveX控件和插件提示框

关闭是否只查看安全传送的网页内容提示框最新编写 爬虫程序,运行程序后,电脑就总是出现下面这个提示框,一遍遍点“是”或“否”繁琐又麻烦。我看得有点不耐烦了。于是就想个办法不让这个提示框总是出来提示。解决...
  • github_35160620
  • github_35160620
  • 2016年09月19日 20:35
  • 16840

标记为可安全执行脚本的Activex

如果你开发的activex控件不是安全的,并且在ie设置中:对未标记为安全执行脚本的activex控件初始化并执行脚本,你没有启用 那么就会收到这样一个提示      在IE的中级安全设置为: ...
  • rankun1
  • rankun1
  • 2016年06月22日 17:34
  • 3151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ActiveX控件与IE7安全分析
举报原因:
原因补充:

(最多只允许输入30个字)