安全模式
一、安全模式的必要性
(1)构造特殊的链接地址,导致文件内的数据泄露
(2)数据库泄露
(3)安全防范的首要策略:所有的HTTP访问都要经过IIS,所以限制IIS的安全性是关键(只有管理员才能登录管理员的界面)
二、ASP.NET支持的四种验证
(3) Form: 窗体验证,验证帐号/密码,Web编程最佳最流行的验证方式
三、认证和授权
(2)授权是确定已验证的用户是否有权访问应用程序中的某个部分、某个点或只访问应用程序提供的特定数据集
授权流程:
四、Form属性
属性
说明 |
|
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 |
指定要与窗体身份验证一起发送的域名 |
from验证示列:
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
<user name="admin" password="admin"/>
<user name="user" password="123456"/>
</credentials>
</forms>
</authentication>
五、对密码进行加密
(1)Clear:密码存储为明文。用户的密码直接与这个值比较。
(2)MD5:密码使用散列摘要进行存储。使用MD5算法进行散列,再与这个值进行相等比较。这个算法比SHA1的性能好。
(3)SHA1:密码使用SHA1散列摘要来存储。在验证证书时,用户密码使用SHA1算法进行散列,再与这个值进行相等比较。这个算法的安全性最高
以MD5为例:
- 修改Login.aspx代码
protected void Button1_Click(object sender, EventArgse)
{
string tbname = TextBox1.Text;
string tbpwd = TextBox2.Text;
if (FormsAuthentication.Authenticate(tbname,tbpwd))
{
FormsAuthentication.RedirectFromLoginPage(tbname,false);
}
}
- 修改web.config代码
<authenticationmode="Forms">
<formsloginUrl="login.aspx"defaultUrl="Default.aspx">
<credentialspasswordFormat="MD5">
<username="admin"password="21232F297A57A5A743894A0E4A801FC3"/>
<username="liu"password="E10ADC3949BA59ABBE56E057F20F883E"/>
</credentials>
</forms>
</authentication>
六、<authorization>对用户进行授权
(1)<authorization>配置节用来对用户进行授权,在实现用户授权过程中,应该遵循以下两个应用规则:
一是位于较低目录级别的配置文件中包含的规则,优先于位于较高目录级别的规则
二是对于给定URL的一组合并的规则,系统从列表头开始,检查规则直到找到第一个匹配项为止
(2)<authorization>配置:
deny阻止访问用户
allow允许访问用户
?代表匿名用户
*代表任意用户
多个用户之间用“,”隔开