浅析ASP.NET安全性分析(加强asp.net 1.1/2.0安全性)

本文介绍ASP.NET安全性是Web 应用程序中一个非常重要的方面,它涉及内容非常广泛,以及介绍讲述如何利用IIS以及Forms 身份验证构建安全的
ASP.NET安全性是Web 应用程序中一个非常重要的方面,它涉及内容非常广泛,不能在一篇文章内说明所有的安全规范,本文讲述如何利用IIS以及Forms 身份验证构建安全的 ASP.NET 应用程序,它是目前被使用最多最广的验证/授权方式.

本文分别以ASP.NET1.1与ASP.NET2.0在Forms 身份验证上的实现方法,以及ASP.NET2.0较上一版本有哪些改进或变化进行说明.相信读者都己经看过许多类似这样的文章,不伦是在网上或是某些专业书籍上,最近又有模式&实践小组成员发布WCF安全模型指南,可见构建网站安全总是不过时的话题,作者认为此文也绝对是您应该收藏的参考资料.

ASP.NET安全性的工作原理

网站在安全性方面有一个常见的要求:特定的页面仅允许某些成员或其他经过身份验证的用户浏览.充分利用Forms身份验证是最好的方式.

身份验证

从实现机制来说ASP.NET1.1与ASP.NET2.0 的安全模型是一致的.首先配置网站为Forms 身份验证模式,之后用户访问网站的URL,Forms 身份验证系统会将未经身份验证的请求重定向到指定的登录页.用户输入凭据(用户名密码)并提交该页.如果验证程序验证用户的身份合法,则系统会向客户端发出一个特定 Cookie(.NET1.1不支持无Cookie模式),它代表用户的身份验证票据.这样后续的请求中,客户端浏览器会把该Cookie一同发送致服务器,如果该Cookie有效则用户通过身份验证并允许对原始请求的资源的访问.

授权

如果用户的请求被验证通过了,但是他请求的URL是否允许用户访问了呢,这就用到了授权.可以通过应用程序配置文件来进行授友也可以在程序中使用代码来验证用户是否有资格访问该资源.如果授权失败,则 ASP.NET 将用户重定向到登录页.如果用户已被授权,则将允许用户访问受保护资源.

ASP.NET1.1实现方式

ASP.NET1.1的实现方式非常简单,不过我们还是需要手写一些代码的,下面我们就一步一步地实现.应用程序配置节的详细说明请参考MSDN相关文档.


<configuration>
<system.web>
<authenticationmodeauthenticationmode="Forms">
<formsnameformsname=".ASPXCOOKIEAUTH"loginUrl=
"Login.aspx"protection="All"timeout="30"path="/"/>
authentication>
<authorization>
<denyusersdenyusers="?"/>
authorization>
system.web>
<locationpathlocationpath="Admin">
<system.web>
<authorization>
<allowrolesallowroles="Admins"/>
<denyusersdenyusers="*"/>
authorization>
system.web>
location>
configuration>


IDC加强asp.net 1.1/2.0安全性一篇技巧

ASP.NET 1.1:

打开 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config

设置:
< location allowOverride="false">
< identity impersonate="true" userName="" password=""/>

ASP.NET 2.0 以上:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config

设置:
< identity impersonate="true"/>

如果没有此两项,分别进行增加:

< location allowOverride="true"> 改为:< location allowOverride="false">
< system.web>
< securityPolicy>
< trustLevel name="Full" policyFile="internal"/>
< trustLevel name="High" policyFile="web_hightrust.config"/>
< trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
< trustLevel name="Low" policyFile="web_lowtrust.config"/>
< trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
< /securityPolicy>
< trust level="Full" originUrl=""/>
< identity impersonate="true"/> < !-- 这里增加 -->
< /system.web>
< /location>
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

前天在调试asp.net+sql server环境,点这里下载sql server 2005企业版。在测试一个用asp.net+mssql写的留言本程序的时候,报错,提示无法识别的属性“type”
由于想研究在linux下跑.net程序的可行性,于是尝试在CentOS5.1下搭建Mono环境和Asp.Net的服务器。Asp.Net的服务器是采用mod_mono和Apache的方式搭建(Nginx的搭建尚未研究)。
在IIS6中,创建一下test.asp;jpg的文件,是可以直接执行的
我们举例详细说明在运行ASP.NET的windows 2003虚拟主机上,对于多个ASP.NET站点的安全配置
由于b/s项目中使用到了一个打印控件,在客户端需要安装exe文件,但在下载此exe文件过程中现在无法下载的问题。超时大概5分钟后出现CGI Timeout的错误。
让apache支持asp.net的设置步骤。