web.config 位於根目錄
1、authentication節點
<system.web>
<!--配置ASP.NET 使用的安全身份驗證模式,以標識傳入的用戶。-->
<authentication mode="Forms">
<forms loginUrl="~/User/Login.aspx" name=".ASPXAUTH" defaultUrl="User/Default.aspx" timeout="30" path="/"/>
</authentication>
基於窗體(Forms)的身份驗證配置站點,當沒有登陸的用戶訪問需要身份驗證的網頁,網頁自動跳轉到登陸網頁。其中元素loginUrl表示登陸網頁的名稱,name表示Cookie名稱
2、authorization 節點
<!--配置Web 應用程序的授權,以控制客戶端對URL 資源的訪問。-->
<authorization>
<allow users="*"/>
<deny users="?"/>
</authorization>
allow 向授權規則映射添加一個規則,該規則允許對資源進行訪問。
deny 向授權規則映射添加一條拒絕對資源的訪問的授權規則。
users="*" 是指任何用戶 users="?" 是指經身份驗證的用戶
注意: 運行時,授權模塊從最本地的配置文件開始,循環訪問allow 和deny 元素,直到它找到適合特定用戶帳戶的第一個訪問規則。然後,該授權模塊根據找到的第一個訪問規則是allow 還是deny 規則來允許或拒絕對URL 資源的訪問。默認的授權規則為<allow users="*"/>。因此,默認情況下允許訪問,除非另外配置。
如果在根目錄下的web.config配置太繁瑣,可以配置到相應目錄下,例如User目錄下的web.config文件
3、customErrors 節點
<customErrors mode="Off">
</customErrors>
<customErrors defaultRedirect="url"
mode="On|Off|RemoteOnly">
<error. . ./>
</customErrors>
defaultRedirect 可選的屬性。指定出錯時將浏覽器定向到的默認URL。如果未指定該屬性,則顯示一般性錯誤。
Mode 必選的屬性。指定是啟用或禁用自定義錯誤,還是僅向遠程客戶端顯示自定義錯誤。
此屬性可以為下列值之一。
值 說明
On 指定啟用自定義錯誤。如果未指定defaultRedirect,用戶將看到一般性錯誤。
Off 指定禁用自定義錯誤。這允許顯示標准的詳細錯誤。
RemoteOnly 指定僅向遠程客戶端顯示自定義錯誤並且向本地主機顯示ASP.NET 錯誤。這是默認值。
默認值為RemoteOnly。
error 可選的元素。指定給定HTTP 狀態代碼的自定義錯誤頁。錯誤標記可以出現多次。子標記的每一次出現均定義一個自定義錯誤條件。
例如:
<customErrors mode="RemoteOnly" defaultRedirect="~/Prompt/GenericError.htm">
<error statusCode="403" redirect="~/Prompt/NoAccess.htm"/>
<error statusCode="404" redirect="~/Prompt/FileNotFound.htm"/>
<error statusCode="500" redirect="~/Prompt/GenericError.htm"/>
</customErrors>
這裡可以讓用戶自定義出錯頁。
4、pages 節點
<!--全局定義頁特定配置設置,如配置文件范圍內的頁和控件的ASP.NET 指令。-->
<pages validateRequest="true" styleSheetTheme="UserDefaultTheme">
validateRequest="true"
該值確定ASP.NET 是否針對危險值檢查來自浏覽器的輸入。如果ASP.NET 針對危險值檢查來自浏覽器的輸入,則為true;否則為false。默認值為true。
這個功能是為了防止跨站腳本等危險代碼。使全局默認為true。只有小數頁面,如搜索頁面
Search.aspx 設為: ValidateRequest="false" 。為了可以搜索類似<div> 等內容,如果只是文字性的輸入,可修改頁search.aspx 的設置,以增強系統安全性。
Security.config 配置說明
文件位於config目錄
1、後台頁面訪問配置
noCheckAdminLogOn
後台不檢查權限的頁面
<noCheckAdminLogOn mode="OnlyList">
<page url="~/Admin/Login.aspx" /> <!---後台登陸頁-->
<page url="~/Admin/Prompt/ShowError.aspx" /> <!---後台出錯頁-->
</noCheckAdminLogOn>
2、檢查外站鏈接的後台頁面配置
noCheckUrlReferrer
後台不檢查來源頁的列表,即管理員用戶可以直接訪問的文件列表。後台設置是默認不允許直接訪問,這樣可以保護後頁頁面不被非法方式訪問和外站鏈接訪問,有效防止跨站請求偽造。
<noCheckUrlReferrer mode="OnlyList">
</noCheckUrlReferrer>
如果文件不在列表中,直接在URL 裡訪問,將出現錯誤提示:
產生錯誤的可能原因:
對不起,為了系統安全,不允許直接輸入地址訪問本系統的後台管理頁面。
如需要,用戶可以加上自定義的內容。
3、防止跨站請求偽造追加安全碼的頁面配置
checkSecurityCode
頁面提交時檢查安全碼。
防止不正常操作(惡意操作)造成系統重大損失。也是對一些重要操作的保護,防止跨站請求偽造。
如:
<page url="~/Admin/Contents/ModelManage.aspx?Action=Delete" />
<page url="~/Admin/Contents/ModelManage.aspx?Action=Delete" />
4、頁面操作權限碼的配置
checkPermissions