ActiveX 部件的安全设置

安全设置用于确保 ActiveX 控件安全地与用户的计算机和计算机数据交互。当为 Internet 部件下载发布 ActiveX 控件时,必须为控件设置安全级别。否则,如果签名的控件发行后损坏了用户的计算机或破坏了用户的数据,开发者将对此负法律责任。

这些问题可以通过验证代码的安全性并作出相应的标记来解决。Internet 部件下载有两级安全:

注意 安全设置只适用于用 Internet Explorer 进行下载的部件。

设置初始化安全性

当将控件标记为设置初始化安全性后,就确保了无论在初始化时使用什么数据和脚本,都不会执行有损于最终用户计算机的操作。一个设置了初始化安全性的控件不会写入或修改任何注册条目、.ini 文件或作为初始化参数结果的数据文件。设置初始化安全性对控件的方法、运行时属性或提供给脚本书写器的信息的安全性没有要求。

缺省情况下,Internet Explorer 将显示一条警告信息,并且不下载没有标记为设置脚本安全性和设置初始化安全性的控件。在您使用 Visual Basic 打包和展开向导为 Internet 发行的软件打包时,可以将您的软件指定为设置初始化安全性和设置脚本安全性。

设置脚本安全性

当您将控件标记为设置脚本安全性时,就确保了没有任何脚本可以使控件对用户的计算机或数据造成破坏。标记为设置脚本安全性的控件将不能从用户的计算机中获取未授权的信息,也不能对系统造成破坏。

在将控件标记为设置脚本安全性之前,必须验证该控件不执行任何非法行为或不允许可能造成破坏的打开文件的行为。一般来说,能够自动获得用户计算机中有关用户的任何信息并将其展示给脚本书写器的控件是没有设置脚本安全性的。这种看似无害的行为在某些国家/地区会被视为犯罪。

特别地,控件的脚本不应执行以下操作:

安全与不安全操作之间的区别是非常细微的。例如,总是将信息写入自己的注册表条目的 ActiveX 控件可能是安全的,而允许用户命名条目的控件是不安全的。创建临时文件时不使用任何初始化或脚本值的控件可能是安全的,但允许初始化时或通过脚本对临时文件命名的控件是不安全的。

在将控件标记为设置脚本安全性之前,建议最好创建文档来记录其理由,对此应给予同签定法律合同一样的关注。您可以将该文档包含在控件的 .inf 文件中。文档可能包括以下内容:

如果以上两种列表的元素之间有任何依赖关系或数据传送,则控件可能没有设置脚本安全性。

注意 判定控件是否安全不是一件小事。要了解控件不应该实现什么类型的功能性,应先从注意 VBScript 中没有实现的 API 调用和命令开始。有关 VBScript 中没有实现的 API 调用和命令的信息,请访问 http://www.microsoft.com/vbscript/。

安全标志的局限性

一个标记为设置初始化安全性和设置脚本安全性的控件在使用时并不一定总是安全的。以上两节列出了控件作为初始化或脚本的结果不能执行的操作,但控件在其他时间仍可能执行这些不安全操作。

例如,假设您创建了一个 ActiveX 控件,该控件在使用 10 次以后就对硬盘进行重新格式化。该操作并不作为初始化或脚本结果发生,因此可以将该控件标记为安全。当然,写这样一个控件的人应受到与写病毒的人同样的惩罚。

开发者,而不是最终用户或 HTML 作者,应当负有提供足够安全保证的责任。如果作为开发者没有提供足够的安全保证,那么他就应承担法律责任。

软件安全的最终审核一般是由对该安全问题非常熟悉且经验丰富的开发人员对软件独立评审后完成的。您可能希望将有关评审的信息包含在下载文件包的 .inf 文件中。

详细信息 有关标记控件设置初始化安全性和脚本安全性的信息,请参阅“生成 ActiveX 控件”中的“设计用于 HTML 的控件”。有关将信息包括到.inf 文件中的信息,请参阅“Internet 部件下载的高级自定义”。