人们过去常常会忽视(好的)应用程序设计能够保护系统资源不受恶意代码的攻击。这在当今倾向于使用基于组件的方式的开发环境里尤其重要。
微软已经张开双臂拥抱了利用.NET框架组件的开发或者模块化开发。这些组件能够轻易地同其他开发人员共享,因此会加速开发的时间。要提醒注意的一点是:在你的应用程序里慎用来源不明的代码。但是你要如何确保里面没有包含恶意代码呢?
代码访问安全机制
微软通过将一个叫做代码访问安全(code access security,CAS)的特性来解决这个问题。CAS提供了一种根据代码的来源和功能赋予对代码的访问权的灵活方法。代码安全机制能够被应用在不同的层次。这个特性只能和可管理代码(managed code)一起使用,后者是针对.NET通用语言运行库(CLR)的。
CLR会在被执行的时候自动地评估应用程序。在缺省的情况下,它会根据计算机本地的安全设置来评估应用程序。因此一系列许可(permission)被分派给应用程序。这个应用程序会根据许可(顺利)运行或者产生一个安全异常。在运行代码的时候,你永远都不能肯定计算机的安全设置。
必要的安全基础知识
微软确认了使用CAS时四个必须了解的方面:
上面几条可能是很好理解的,但是命令性和声明性句法之间的区别常常被弄混淆。