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:不能更改系統設置的用戶,但能夠使用系統。

相關文章
相關標籤/搜索