一直依赖,CLR 有一个非常全面的安全模型,称为代码访问安全(Code Access Security,CAS)。不幸的是,这个模型非常复杂,并且在多数开发人员眼中显得有点杀鸡用牛刀。
在 Silverlight 里 CAS 被替换成了一个简化过的安全模型,仅限于编写代码的人所做的是 / 否决策。代码签名和手动编辑的安全策略对于在 Silverlight 下工作的 CLR 开发人员,将一去不返。
新的 Silverlight 安全模型包含三个访问级别:Transparent、SafeCritical 和 Critical。Transparent 代码的特权级最低(部分信任),而 SafeCritical 和 Critical 的特权级最高(完全信任)。只有微软信任的 Assemblies 才能被提升到完全信任的级别。这些 Assemblies 被称为“平台代码”,必须以微软公共密钥签名并且存放在受信的路径。其它所有针对 Silverlight 的代码被称为“用户代码”,不能被提升到完全信任级别。 用户代码只能访问 Transparent 和 SafeCritical 的功能。如果用户代码要访问 Critical 的 API,那么将会抛出一个 MethodAccessException 异常。
这项功能将在 Silverlight 1.1 中提供,目前 Silverlight 1.1 面向的是 Windows 和 OS X/x86 平台。不像 Silverlight 1.0,这个版本已经出现不能运行在以往的 OS X/Power PC 上的投诉了。
Silverlight 1.1 Alpha 已经提供下载。
查看英文原文: Silverlight’s New Security Model
评论