ASP.NET 2.0应用程序的安全核心技术(3)
强化ASP.NET配置
在实现以上所述的安全性方面的内容之后,接着要通过一些配置来提高ASP.NET方面的安全性。在这个方面,管理人员要注意锁死ASP.NET的配置,与安全相关的配置项和预编译等方面的相关内容。
(1)锁死配置。ASP.NET的特点使用层次结构配置系统。在这个系统中,下层设置自动继承上层设置。因此,可以根据服务器、站点或应用程序来调整配置设置。相关的配置文件如Inetpub\wwwroot\web.config、应用程序根或者子目录中的Web.config文件,以及Windows \Microsoft .NET\Framework\ version\Config\web.config和machine.config等。管理人员需要了解这些文件中的相关配置项作用,并根据实际情况作出正确有效的调整。例如与安全相关的配置属性allowDefinition,requirePermission等。
(2)注意与安全相关的配置项。在上一段所介绍的web.config文件中,包含很多与安全相关的配置项。限于篇幅,笔者仅将这些配置项列出。有关详细说明,读者可参考MSDN。这些与安全相关的配置项是<deployment>、<httpRuntime>、<compilation>、<pages>、<caching>、<trace>、<customErrors>、<forms>、<authorization>、<sessionState>、<httpCookies>、<trust>、<connectionStrings>、<membership> 和<roleManager>。
(3)进行预编译。默认情况下,ASP.NET应用程序采用命令编译。也就是说,在页面和控件不被使用时将被编译。隐含地,组成应用程序的所有代码必须在运行时应用ASP.NET,包括页面、代码隐藏和App_Code类。显然,这不适用于实际发布环境。如果在部署前预编译应用程序,那么就可以只部署二进制值和配置文件。建议开发人员使用Visual Studio的一个新附加程序Web Deployment Project,它可以提供一些使用有效的额外选项。可选择预编译方式很多,也是开发和管理人员需要认真考虑的问题。
小结
本文大部分内容相当于一个检查表,开发和管理人员可以在部署和配置过程中用其进行对照检查。当然,安全性不能通用化,通常要根据环境确定,但是相信本文的指导原则可以是一个好的基础。遵循这些原则并实施一定措施,可以消除很多严重的安全问题。
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。