Web程序安全机制

  ASP.NET提供了一个多层的安全模型,这个模型可以很是容易的保护Web应用程序。程序员

  安全策略没有必要很是复杂,可是须要应用安全策略的地方倒是很是普遍的。程序员须要保证本身的应用程序不能被骗取,而把私有信息发送出去。web

限制访问的文件类型算法

  ASP.NET自动提供一个基本的安全策略来阻止对特定文件的访问请求。ASP.NETIIS注册这些文件类型,并把它们配置给IIS中的一个类HttpForbiddenHandler,这个类在它的生命周期中只有一个做用,就是拒绝全部向配置到它里面的文件发送请求。数据库

  被限制访问的文件类型以下:后端

    1..asax:全局文件,提供了一些在一个中心位置响应应用程序级或模块级事件的方法。安全

    2..ascWeb服务文件,提供Web服务。服务器

    3..config:配置文件,提供应用程序的配置。网络

    4..cs:源代码文件,由C#编写。ide

    5..csprojC#项目文件,控制C#项目的生成。网站

    6..vb:源代码文件,由VB编写。

    7..vbprojVB项目文件,控制VB项目的生成。

    8..resx:资源文件,主要用于存储各个版本的资源。

    9..resources:受控资源文件,能够存放位图、子串和自定义数据等资源。

安全概念

  安全有三种最基本的概念。 

    1. 认证(Authentication):这个过程是要肯定一个用户的身份以及迫使用户证实他们是谁。一般这些Windows用户帐户被存储在一个文件或后端数据库中。

    2. 受权(Authorization):一旦一个用户经过认证,受权的过程就是肯定用户是否有足够的权限来执行某一行为。一般,Windows设定受权检测。

    3. 模拟(Impersonation):全部代码都运行在一个固定的帐户下,这个帐户被定义在machine.config文件里。而模拟容许一部分代码运行在一个不一样的身份之下。受权和认证是建立一个安全网站的两个基石。

安全策略

  IISASP.NET的安全设置能够有几种互动的方式,在实际操做中,程序员能够把如下两个中心策略添加到ASP.NET安全机制中:

    1. 容许无身份的用户,使用ASP.NET表单认证模型来保证网站的安全。
    2. 禁止无身份的用户,使用IIS认证来强迫每一个用户来使用集成的Windows认证。

  表单认证

    ASP.NET支持尖端验证算法,这种算法使得用户没法骗取本身的Cookie或试图欺骗应用程序以使他们进入。

    为了实现基于表单的安全,须要按照如下三个步骤进行操做:

      1.Web.config文件里设置认证模型。

      2.限制无身份的用户访问应用程序中的特定页或地址。

      3.建立一个登陆页面。

    Web.config设置 

      能够在Web.config文件里使用<authentication>节来定义网站的安全性。

1  <configuaration>
2     <system.web>
3         <authentication mode=”Forms”>
4             <forms name=”myCookies” loginUrl=”../Login.aspx” protection=”All” timeout=”50” path=”/” />
5         </authentication>
6     </system.web>
7 </configuaration>
View Code

      表单认证的设置属性:

        1.name:设置Cookie的名字,默认值为ASPXAUTH

        2.loginUrl:设置客户端登陆页面地址,若是用户没有认证就会跳转到该地址,默认值为Default.aspx

        3.protection:设置安全Cookie的加密和验证类型,类型的值能够是AllNoneEncryptionValidation

        4.timeout:设置Cookie失效时间。

        5.path:设置Cookie做用的路径,默认值是“/”。

    受权规则 

      为了控制登陆网站的权限,须要在Web.config文件中的<authorization>节中设置访问控制的规则。

1 <configuaration>
2    <system.web>
3         <authorization>
4             <allow users=”*” />
5         </authorization>
6     </system.web>
7 </configuaration>
View Code

    设置限制性规则

      为了禁止任何用户都能访问应用程序,须要设置一种更具备限制性的规则。

1 <configuaration>
2     <system.web>
3         <authorization>
4             <allow users=”?” />
5         </authorization>
6     </system.web>
7 </configuaration>
View Code

    控制进入特定的目录地址

      应用程序设计一般把文件放在一个单独的须要认证的文件目录中,使用ASP.NET配置文件能够很轻松地完成这些设置。能够在Web.config文件<authorization>节中进行严格的安全目录设置,这样应用程序就会简单地拒绝全部无身份的用户。

1 <configuaration>
2     <system.web>
3         <authorization>
4             <deny users=”?” />
5       </authorization>
6     </system.web>
7 </configuaration>
View Code

    限制特定的用户 

      使用<allow>节能够设置容许访问应用程序的用户列表,而使<deny>节能够设置拒绝访问应用程序的用户列表。

1 <authorization>
2     <deny users=”?”/>
3     <deny users=”admi,shine”/>
4     <deny users=”light”/>
5     <allow users=”*”>
6 </authorization>
View Code

    控制进入特定的文件

      一般,经过目录设置文件访问权限是最简洁和最容易的方式,然而,程序员也能够使用<location>标记来限制特定文件的访问。

 1 <configuration>
 2     <system.web>
 3         <authorization>
 4             <allow users=”*” />
 5         </ authorization >
 6     </system.web >
 7     <location path=”Page1.aspx”>
 8         <system.web>
 9             <authorization>
10                 <deny users=”?”>
11             </authorization >
12         </system.web>
13     </location>
14 </configuration>
View Code

  Windows认证

    采用Windows认证,IIS将要掌管认证过程,若是虚拟目录采用默认的设置,用户就会被受权在无身份的IUSER_[ServerName]帐户之下,可是当使用Windows认证时,必须强迫用户在他们被容许进入网站的安全内容以前登陆IIS

    用户登陆的信息能够采用几种方式来转化,可是最终的结果是经过使用一个本地Windows帐户来认证用户。一般状况下,这使得Windows认证成为最适合互联网的方案,其中,一组数量有限的已知用户被注册在一台网络服务器上。

    为了对已知的用户实行基于Windows的安全策略,须要遵循如下步骤:

      1.Web.config文件里设置认证模型。

      2.采用受权规则拒绝全部无身份的用户访问 网站。

      3.在服务器上配置Windows用户帐户。

    IIS设置

      为了设置拒绝无身份用户的进入 ,需设置IIS

    Web.config设置

      一旦采用适当的虚拟目录安全设置,就应该在Web.config文件里把认证模式配置为Windows认证。在一个VS.NET项目中,默认的认证模式是Windows认证,示例代码以下:

1 <configuration>
2     <system.web>
3         <authentication mode=”Windows”/>
4     </system.web>
5 </configuration>
View Code

      能够使用<allow><deny>元素来讲明容许或限制用户去访问特定的文件或目录。也能够经过roles属性来限制某一类型的用户,这些用户具备相同的Windows组提供的帐户。

1 <authentication>
2         <deny users=”?”/> 
3         <allow roles=”Administrator,Light”/>
4         <deny users=”light”/>
5 </authentication>
View Code

      若是使用Windows认证。必须用明确的语法说明用户的域名或服务器。

      默认的Windows角色:

        1.AccountOperator:负责管理一台计算机或域内用户帐户的用户。

        2.Administrator:彻底和不受限制进入计算机或域的用户。

        3.BackupOperator:用来备份操做的用户。

        4.Guest:具备用户角色但有更多的限制的用户。

        5.PowerUser:同Administrator类似但带有一些限制的用户。

        6.PrintOperator:负责打印机的用户。

        7.Replicator:在一个域内负责文件复制的用户。

        8.SystemOperator:同Administrator类似但带有一些限制的用户。

        9.User:不能更改系统设置的用户,但能够使用系统。

相关文章
相关标签/搜索