谈IObjectSafety
来源:互联网 发布:js 比较数值相等 编辑:程序博客网 时间:2024/05/14 21:25
IE怎么知道一个插件是脚本安全的?它是通过以下两个办法。一是查询ActiveX组件是否实现了IObjectSafety接口,并且返回脚本安全;二是查询ActiveX组件是否在注册表的Component Category Manager里表明自己实现了CATID_SafeForInitializing和CATID_SafeForScripting。
详情请参见MSDN的文章:
About IObject Safety Extensions for Internet Explorer
Safe Initialization and Scripting for ActiveX Controls
一个ActiveX组件不能随随便便的把自己声明为脚本安全的,万一被人利用了咋办?因为只要在系统中注册了,任何网站都可以使用该ActiveX组件,有可能为做出损害用户利益的事情来。所以,作为一个负责任的开发者,在把自己的ActiveX组件声明为脚本安全以前,一定要再三思考,有没有可能被别人恶意使用?特别是有访问本地资源功能的组件,更要小心,别让人破坏了用户的数据或是窃取了信息。
所以,你一定要看一看这篇MSDN的文章:Designing Secure ActiveX Controls
虽然微软做了以上的防范,但是存在安全隐患。比如为了检查ActiveX组件是否支持IObjectSafety接口,你必须先把ActiveX组件给创建了。在你发现它根本就不支持IObjectSafety之前,相关的Dll就会被加载,初始化代码已经执行。天知道那些ActiveX组件创建后会不会有什么安全隐患,即便没有,也是浪费系统资源的。
下面这篇文章IObjectSafety and Internet Explorer 就提出了一些改进意见,认为应该先检查Component Category Manager里的值,因为这只是静态的检索不需要真正加载ActiveX组件。如果注册表表明其是安全的,再加载和检查IObjectSafety接口。后面这一步是否有点多余?难道是怕有人篡改了注册表?也有可能。因为ActiveX组件是经过数字签名的,所以不可能生加上IObjectSafety接口。所以,需要双重防范。
因此,ActiveX还是带有很多安全隐患的。所以,为了避免麻烦,不要随便浏览不靠谱的网页。
- 谈IObjectSafety
- 再谈IObjectSafety
- IObjectSafety (Interfaces)
- IObjectSafety (Interfaces)
- IObjectSafety (Interface)
- IObjectSafety.cs
- IObjectSafety接口
- IObjectSafety.txt
- 再谈IObjectSafety
- 关于IObjectSafety的思考
- ATL 实现IObjectSafety接口
- VC++实现IObjectSafety
- IobjectSafety and Internet Explorer
- ATL 实现IObjectSafety 接口
- activex 添加 iobjectsafety
- ActiveX控件实现IobjectSafety接口
- vc ocx 实现IObjectSafety接口
- VC com开发中实现IObjectSafety
- ListView中 局部刷新Item 实现下载进度条局部更新
- MFC中如何从EDIT控件中获取文字
- W3C发布WAI-ARIA 1.0正式推荐标准 增强开放万维网平台可访问性
- 如何制作一个ActiveX控件,并注册和发布,用于web上!(2)
- 添加中英文日志
- 谈IObjectSafety
- 用Eclipse开发和调试Android应用程序
- 第3章 主机规划与磁盘分区
- phpsocket客户端以及服务器例子
- Oracle 增加修改删除字段
- ProgressDialog使用总结
- 多台电脑共享一套鼠标键盘--synergy
- Robert W. Sebesta所著Concepts of Programming Languages的国内版本[原版和译版]
- oracle数据库使用不了命令行 sqlplus lsnrctl