Silverlight 应用安全指南
1. 引言
互联网和万维网的发展彻底改变了我们使用计算机的方式。作为软件工程师,我们不能再像过去普通计算机未直接连接众多其他计算机时那样忽视安全问题。Silverlight 应用通常运行在用户的浏览器和其他联网设备上,因此在开发 Silverlight 应用时,了解其安全特性以及如何确保应用的安全性至关重要。
2. CoreCLR 中的安全机制
2.1 CoreCLR 执行环境下的安全考量
应用代码在宿主操作系统之上的 CoreCLR 环境中执行,需要谨慎考虑代码的执行方式。Silverlight 插件可与宿主操作系统交互,如进行网络通信、修改文件系统中的文件以及在屏幕上显示图形。若 Silverlight 应用能直接使用这些功能,宿主操作系统的安全性将受到威胁。因此,必须有一种机制来确保应用代码与能影响宿主操作系统的代码之间的隔离。
2.2 .NET 中的代码访问安全(CAS)
Silverlight 提供的托管执行引擎基于 .NET 的 CLR。在 .NET 中,可执行代码的安全模型称为代码访问安全(Code Access Security,CAS)。CAS 有几个重要方面:
- 代码请求特定的安全权限,如请求写入文件的权限。
- 进行栈遍历以确定授予的权限级别。
- 管理员可控制授予应用的权限级别。
在 .NET 平台的 C# 中,以请求写入文件权限为例,命令式方法如下:
public void saveDataToFile(strin