[Web配置]web.config中用戶驗證 訪問權限 配置

代碼如下:

1,當一個目錄下的所有網頁禁止訪問時;如下

    <system.web>
      <!--當驗證模式爲froms(如下),如果匿名用戶訪問禁止訪問的頁,將會在下面設計。-->
      <authentication mode="Forms">

     <!--當驗證模式爲froms(如下),如果匿名用戶訪問禁止訪問的頁,將會轉到login.aspx。-->
        <forms defaultUrl="Default.aspx" loginUrl="Login.aspx" timeout="30" name=".FormsAuthCookie" protection="All" path="/"></forms>
      </authentication>
      <!--設定禁止訪問的用戶-->
      <authorization>
        <deny users="*"/>
        <!-- 禁止所有用戶匿名用戶瀏覽-->
      </authorization>
    </system.web>

2.如果有如除了登錄頁面外的所有頁面都不能訪問。如下設置:
<!-- 除了這一頁外,禁止所有用戶匿名用戶瀏覽如下:-->
<location path="login.aspx">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>

具體解釋

      <authentication mode="Forms">

窗體身份驗證準則

要使用窗體身份驗證,設置 元素的 mode="Forms"。接下來,使用 子元素配置窗體身份驗證。以下片段顯示了一個安全的 身份驗證元素配置:

<authentication mode="Forms">
<forms loginUrl="Restricted\login.aspx" Login page in an SSL protected folder
protection="All"                  Privacy and integrity
requireSSL="true"                 Prevents cookie being sent over http
timeout="10"                      Limited session lifetime
name="AppNameCookie"              Unique per-application name
path="/FormsAuth"                    and path
slidingExpiration="true" >        Sliding session lifetime
</forms>
</authentication>

使用以下推薦實踐提高窗體身份驗證安全性:

設置 Protection="All"

這個設置能夠確保窗體身份驗證 cookie 加密,從而提供私密性和完整性。用於 cookie 加密的密鑰和算法是在 <machineKey> 元素上指定的。

加密和完整性檢查能夠防止 cookie 篡改,雖然如果攻擊者設法捕獲 cookie 的話,它們並不能降低 cookie 重放攻擊的風險。還應該使用 SSL 防止攻擊者通過使用網絡監視軟件捕獲 cookie。儘管使用了 SSL,cookies 還是能夠通過跨站點腳本 (XSS) 攻擊竊取。應用程序必須通過適當地輸入驗證策略,採取足夠防範措施,以降低這種風險。

使用小的 cookie 超時值

使用小的超時值限制會話生存期,並減少 cookie 重放攻擊的可能性。

考慮使用固定的到期時間

考慮設置 <forms> 元素的 slidingExpiration="false" 以修改 cookie 到期時間,不要在每次 Web 請求之後重新設置到期時間。如果您不使用 SSL 保護 cookie 的話,這是很重要的。

此功能在 .NET Framework 1.1 版中提供。

在窗體身份驗證中使用 SSL

使用 SSL 保護憑據和身份驗證 cookie。SSL 能夠防止攻擊者捕獲憑據或者用來嚮應用程序標識您的窗體身份驗證 cookie。竊取的身份驗證 cookie 是一個竊取的登錄。

設置 requireSSL="true"這將設置 cookie 中的 Secure 屬性,從而確保 cookie 不會從瀏覽器通過 HTTP 鏈路傳輸到服務器。HTTPS (SSL) 是必需的。

這是一個 .NET Framework 1.1 版設置。在 1.0 版上構建的應用程序中,設置 cookie Secure屬性是通過顯式的編程進行的。有關更多信息和示例代碼,請參閱“構建安全的 ASP.NET Web 頁和控件”單元。

如果您不使用 SSL,設置 slidingExpiration = "false"

通過將 slidingExpiration 設置爲 false,可以將 cookie 超時時間修改爲距離 cookie 最初創建時的分鐘數。否則,超時將在每次向 Web 服務器請求時更新。如果 cookie 被捕獲了,將爲攻擊者提供所需要的足夠時間以經過身份驗證的用戶標識訪問應用程序。

此功能在 .NET Framework 1.1 版中提供。

不要在產品服務器上使用元素

在 XML 配置文件中存儲用戶憑據的能力是爲了支持快速開發和有限測試而提供的。不要使用實際的最終用戶憑據。最終用戶憑據不應該存儲在產品服務器上的配置文件中。產品應用程序應該實現自定義用戶憑據存儲區,例如,在一個 SQL Server 數據庫中。

配置 machineKey

<machineKey> 元素定義了用來加密窗體身份驗證 cookie 的加密算法。此元素還保留着加密密鑰。有關更多信息,請參閱本單元中的“機器密鑰”部分。

使用唯一的 cookie 名稱和路徑

使用唯一的 namepath 屬性值。通過確保名稱的唯一,能夠防止在同一個服務器上寄宿多個應用程序時可能出現的問題。

<authorization>

<authorization> 中以<allow> 和 <deny> 子元素的形式指定

一個特定的用戶
一個逗號分隔的用戶列表
所有匿名用戶,以問號 (?) 表示
所有用戶,以星號 asterisk (*) 表示
以下標記說明了如何使用 URL 授權規則來允許用戶Tito 和 Scott ,而拒絕其它用戶:

<authorization>
     <allow users="Tito, Scott" />
     <deny users="*" />
</authorization>

 

http://qqhack8.blog.163.com/blog/static/11414798520117131109550/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章