ASP.NET安全模式
根据所请求资源的类型,IIS能够自己处理请求,也可以不自己处理请求。如果资源请求一个ASPX页面,则IIS将请求经过身份验证用户(或匿名用户)的安全令牌一起传递给ASP.NET。接下来要发生的事情就取决于ASP.NET的配置。ASP.NET支持3种授权方法:Windows,Passport和Form。表示ASP.NET自己根本不执行身份验证,完全依赖于IIS身份验证。在这种情况下,匿名用户可以使用默认的ASP.NET账户访问资源。
安全的必要性:
1.构造特殊的链接地址,导致文件内的数据泄漏
2.数据库泄漏
3.安全防范的首要策略:所有的HTTP访问都要进过IIS,所以限制IIS的安全性是关键。
一,Windows身份验证
基于Windows的身份验证在ASP.NET应用程序所在的Windows服务器和客户机之间处理。在基于Windows的身份验证模型中,请求直接发送给IIS,进行验证过程。这种类型的身份验证在内联网环境中非常有用。在该环境下,可以让服务器处理这个验证过程,尤其是用户已登录到网络上时,只需获取并利用已有的证书完成验证过程。
IIS首先从域登录中获得用户的证书。如果这个过程失败,IIS就显示一个弹出对话框,用户可以在其中输入或重新输入登录信息。要让ASP.NET应用程序使用基于Windows的身份验证,首先要创建一些用户和组。
二,Passport身份验证
验证终端用户的另一种方法是使用Microsoft的Passport标识系统。有Passport账户的用户可以有一个签名解决方案,也就是说,他只需这些证书就可以登录到Internet的站点或其他支持Passport的站点和应用程序上。
应用程序支持Passport身份验证时,请求会被重定向到Micresoft Passport站点上,在该站点上,用户可以输入证书。如果验证成功,用户就可以获得授权,请求被重定向回应用程序。
护照身份验证是一个Microsoft集中式身份验证服务。护照提供一种对参于某种计划的所有站点的用户进行身份验证的方法。用户只需要登录一次,如果成功通过了身份验证,就可以自由遍历所有的成员站点。除了一次性登录服务外,
登录服务器使用窗体信息来验证用户的身份,如果成功,则创建一个Passport票据。接着,用户被重定向到原始的URL,并且该票据被加密后通过查询字符串进行传递。
三,Form身份验证
窗体验证,验证帐号/密码,Web编程最佳最流行的验证方式。
<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH" LoginUrl="Login.aspx" path="/">
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
基于窗体的身份验证是允许用户访问整个应用程序或其特定资源的一种流行模式。使用它可以把登录窗体直接放在应用程序中,这样,终端用户之需把用户名和密码输入到浏览器中的一个HTML窗体上即可。
允许用户访问整个应用程序或其特定资源的一种流行的模式。
IIS接受请求,但不进行处理,而传递给ASP.NET应用程序。
属性 | 说明 |
name | 这是赋予cookie的名字,该cookie用于请求之间保存的用户。该默认值是.ASPXAUTH。 |
loginUrl | 如果没有找到有效的验证cookie,就指定请求重定向的URL。 |
protection | 指定要应用于验证cookie的保护级别,它有以下4个设置 |
All:应用程序使用数据有效性验证和加密机制来保护cookie,这是默认设置 | |
None:不加密cookie | |
Encryption:加密cookie,但不对它进行数据有效性验证 | |
Validation:进行数据有效性验证,但不加密cookie | |
path | 指定应用程序所存储cookie的路径。在大多数情况下应用“/”,它是默认设置 |
timeout | 指定cookie过期的时间(分钟),其默认值为30分钟 |
cookieless | 制定在进行验证和授权过程中,基于窗体的身份验证过程是否使用cookie |
defaultUrl | 指定登录成功后默认跳转的URL |
domain | 指定要与窗体身份验证一起发送的域名 |
对密码进行加密:
1.Clear:密码存储为明文。用户的密码直接与这个指比较。
2.MD5:密码使用散列摘要进行存储。使用MD5算法进行散列,再与这个值进行相等比较。这个算法比SHA1的性能好。
3.SHA1:密码使用SHA1散列摘要来存储。在验证证书时,用户密码使用SHA1算法进行散列,再与这个值进行相等比较。这个算法的安全性最高。
form验证总结:
用户利用forms验证访问受保护资源,包括以下4个步骤:
1.用户请求受保护的页面Index.aspx
2.HTTP模块调用forms验证服务截取来自用户的请求,并检查其中是否包含用户凭据
3.如果没有发出任何用户凭据,将自动转向用户登录页面Login.aspx
4.原请求页面地址Index.aspx将以ReturnUrl值的形式,附加在登录页面Login.aspx的URL地址后。当用户通过验证后,应用程序将根据ReturnUrl值进行页面重定向,以便访问Index.aspx