Silverlight 4的COM+自动化带来安全和可移植性隐忧

在使用高级权限运行浏览器外(Out-Of-Browser,OOB)应用时,Silverlight 4支持COM+自动化。微软表示说这个支持是应企业用户的需求而提供的,他们常希望能通过Silverlight提供类如Office自动化那样的功能。

Silverlight的项目经理Justin Angel最近详细介绍了如何启动Silverlight应用以使用COM+(注意:该文需要Silverlight支持)。COM+自动化仅支持有高级信任许可的OOB Silverlight应用。不像全部信任功能,高级信任许可意味着操作者可以在少许限制的条件下,在Windows计算机上执行几乎所有的命令。比如,操作者可以读/写文件系统,但是只限于“我的”文件夹,比如我的文档,我的视频,我的图片等。Silverlight 4可以通过COM+做的事情如下所示:

  • 运行命令或者可执行(EXE)文件
  • 读注册表
  • 访问本地ODBC
  • 读/写硬盘(在上文提到的限制条件下)
  • 自动化Office

因为很多人已经将Silverlight看作另一个Flash播放器,一个可限制访问其运行的计算机上的插件,所以让Silverlight访问COM+引来众多人的关注。一方面它带来了安全问题,另一方面它破坏了对其他平台的可移植性。好几个开发者在WPF Disciples(WPF爱好者)群组中发表评论:

Shawn Wildermuth说:我不想过多地争论。我理解为什么微软这样做,但是我还是认为这样做很不妥。恕我直言,COM只能在Windows下运行对其他平台来说很不爽。

Marlon Grech,微软客户端应用的MVP说:我很赞同Shawn所说的,为SL增加COM+支持违反了跨平台和一次编写处处运行的主张。即使他们为AppleScript增加支持,对我们来说也是噩梦一场。另外……我要说,武器本身没什么问题,关键是使用这些武器的人。对吧?:)

Jeremiah Morrill:在我看来,主要的“概念上”的安全问题是“信任级别”。CoreCLR也还没有授予“完全信任”模式,但这些COM实例,按照定义,是运行在沙箱之外的。我想这会让那些期望或设想得到A,却拿到B的开发者和用户都很迷糊……一般来说,在讨论安全问题时,这是不妥的。

对于一些人来说,COM+自动化和在高级信任许可下运行Silverlight应用并不是什么安全问题,因为用户需要先安装才能运行OOB应用,他们也被明显警告说应用将会访问他们的硬盘。理论上,这会像其他应用一样,运行一个桌面应用——但是,恐惧恐怕来自于Silverlight被假设成一个运行在沙箱里的绝对安全的浏览器应用,而不是一个桌面应用。

另外一个问题是移植性。对于缺少COM+的Mac机而言,这个功能有什么用吗?Angel提到说,微软正在调查通过AppleScript在Mac机上支持COM的可能性,并说“如果微软最终没有决定在Mac机上支持Silverlight 4 RTM,那么,并不是因为它不能做到”。对于Moonlight,Angel说:

Moonlight在一开始创建时,就有超级安全的模式。Mono支持在有着完全信任能力的GtkWidget中运行Moonlight。所以,在Silverlight有高级权限模式时,Mono确实完全信任模式。

同事,系统管理员可以对系统进行配置,以阻止用户安装和运行需要高级信任许可的OOB应用。Group Policy Setting提到了更多关于这方面的信息。

查看英文原文:Silverlight 4’s COM+ Automation Raises Security and Portability Concerns

你可能感兴趣的:(Silverlight 4的COM+自动化带来安全和可移植性隐忧)