zoukankan      html  css  js  c++  java
  • Web程序安全机制

      ASP.NET提供了一个多层的安全模型,这个模型能够非常容易的保护Web应用程序。

      安全策略没有必要非常复杂,但是需要应用安全策略的地方却是非常广泛的。程序员需要保证自己的应用程序不能被骗取,而把私有信息发送出去。

    限制访问的文件类型

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

      被限制访问的文件类型如下:

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

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

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

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

        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:不能更改系统设置的用户,但可以使用系统。

  • 相关阅读:
    Kibana功能一览
    如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量
    SAP云平台CloudFoundry中的用户自定义变量
    SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
    ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证
    ABAP Netweaver和git的快捷方式
    ABAP Netweaver和Cloud Foundry上的环境变量Environment Variable
    如何处理CloudFoundry应用部署时遇到的254错误
    Netweaver工作进程的内存限制 VS CloudFoundry应用的内存限制
    Java实现 LeetCode 514 自由之路
  • 原文地址:https://www.cnblogs.com/spilledlight/p/4901337.html
Copyright © 2011-2022 走看看