淺析ASP.NET安全性分析(加強(qiáng)asp.net 1.1/2.0安全性)
更新時(shí)間:2012年11月10日 11:46:19 作者:
本文介紹ASP.NET安全性是Web 應(yīng)用程序中一個(gè)非常重要的方面,它涉及內(nèi)容非常廣泛,以及介紹講述如何利用IIS以及Forms 身份驗(yàn)證構(gòu)建安全的
ASP.NET安全性是Web 應(yīng)用程序中一個(gè)非常重要的方面,它涉及內(nèi)容非常廣泛,不能在一篇文章內(nèi)說明所有的安全規(guī)范,本文講述如何利用IIS以及Forms 身份驗(yàn)證構(gòu)建安全的 ASP.NET 應(yīng)用程序,它是目前被使用最多最廣的驗(yàn)證/授權(quán)方式.
本文分別以ASP.NET1.1與ASP.NET2.0在Forms 身份驗(yàn)證上的實(shí)現(xiàn)方法,以及ASP.NET2.0較上一版本有哪些改進(jìn)或變化進(jìn)行說明.相信讀者都己經(jīng)看過許多類似這樣的文章,不倫是在網(wǎng)上或是某些專業(yè)書籍上,最近又有模式&實(shí)踐小組成員發(fā)布WCF安全模型指南,可見構(gòu)建網(wǎng)站安全總是不過時(shí)的話題,作者認(rèn)為此文也絕對(duì)是您應(yīng)該收藏的參考資料.
ASP.NET安全性的工作原理
網(wǎng)站在安全性方面有一個(gè)常見的要求:特定的頁面僅允許某些成員或其他經(jīng)過身份驗(yàn)證的用戶瀏覽.充分利用Forms身份驗(yàn)證是最好的方式.
身份驗(yàn)證
從實(shí)現(xiàn)機(jī)制來說ASP.NET1.1與ASP.NET2.0 的安全模型是一致的.首先配置網(wǎng)站為Forms 身份驗(yàn)證模式,之后用戶訪問網(wǎng)站的URL,Forms 身份驗(yàn)證系統(tǒng)會(huì)將未經(jīng)身份驗(yàn)證的請(qǐng)求重定向到指定的登錄頁.用戶輸入憑據(jù)(用戶名密碼)并提交該頁.如果驗(yàn)證程序驗(yàn)證用戶的身份合法,則系統(tǒng)會(huì)向客戶端發(fā)出一個(gè)特定 Cookie(.NET1.1不支持無Cookie模式),它代表用戶的身份驗(yàn)證票據(jù).這樣后續(xù)的請(qǐng)求中,客戶端瀏覽器會(huì)把該Cookie一同發(fā)送致服務(wù)器,如果該Cookie有效則用戶通過身份驗(yàn)證并允許對(duì)原始請(qǐng)求的資源的訪問.
授權(quán)
如果用戶的請(qǐng)求被驗(yàn)證通過了,但是他請(qǐng)求的URL是否允許用戶訪問了呢,這就用到了授權(quán).可以通過應(yīng)用程序配置文件來進(jìn)行授友也可以在程序中使用代碼來驗(yàn)證用戶是否有資格訪問該資源.如果授權(quán)失敗,則 ASP.NET 將用戶重定向到登錄頁.如果用戶已被授權(quán),則將允許用戶訪問受保護(hù)資源.
ASP.NET1.1實(shí)現(xiàn)方式
ASP.NET1.1的實(shí)現(xiàn)方式非常簡單,不過我們還是需要手寫一些代碼的,下面我們就一步一步地實(shí)現(xiàn).應(yīng)用程序配置節(jié)的詳細(xì)說明請(qǐng)參考MSDN相關(guān)文檔.
<configuration>
<system.web>
<authenticationmodeauthenticationmode="Forms">
<formsnameformsname=".ASPXCOOKIEAUTH"loginUrl=
"Login.aspx"protection="All"timeout="30"path="/"/>
authentication>
<authorization>
<denyusersdenyusers="?"/>
authorization>
system.web>
<locationpathlocationpath="Admin">
<system.web>
<authorization>
<allowrolesallowroles="Admins"/>
<denyusersdenyusers="*"/>
authorization>
system.web>
location>
configuration>
IDC加強(qiáng)asp.net 1.1/2.0安全性一篇技巧
ASP.NET 1.1:
打開 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config
設(shè)置:
< location allowOverride="false">
< identity impersonate="true" userName="" password=""/>
ASP.NET 2.0 以上:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
設(shè)置:
< identity impersonate="true"/>
如果沒有此兩項(xiàng),分別進(jìn)行增加:
< location allowOverride="true"> 改為:< location allowOverride="false">
< system.web>
< securityPolicy>
< trustLevel name="Full" policyFile="internal"/>
< trustLevel name="High" policyFile="web_hightrust.config"/>
< trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
< trustLevel name="Low" policyFile="web_lowtrust.config"/>
< trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
< /securityPolicy>
< trust level="Full" originUrl=""/>
< identity impersonate="true"/> < !-- 這里增加 -->
< /system.web>
< /location>
本文分別以ASP.NET1.1與ASP.NET2.0在Forms 身份驗(yàn)證上的實(shí)現(xiàn)方法,以及ASP.NET2.0較上一版本有哪些改進(jìn)或變化進(jìn)行說明.相信讀者都己經(jīng)看過許多類似這樣的文章,不倫是在網(wǎng)上或是某些專業(yè)書籍上,最近又有模式&實(shí)踐小組成員發(fā)布WCF安全模型指南,可見構(gòu)建網(wǎng)站安全總是不過時(shí)的話題,作者認(rèn)為此文也絕對(duì)是您應(yīng)該收藏的參考資料.
ASP.NET安全性的工作原理
網(wǎng)站在安全性方面有一個(gè)常見的要求:特定的頁面僅允許某些成員或其他經(jīng)過身份驗(yàn)證的用戶瀏覽.充分利用Forms身份驗(yàn)證是最好的方式.
身份驗(yàn)證
從實(shí)現(xiàn)機(jī)制來說ASP.NET1.1與ASP.NET2.0 的安全模型是一致的.首先配置網(wǎng)站為Forms 身份驗(yàn)證模式,之后用戶訪問網(wǎng)站的URL,Forms 身份驗(yàn)證系統(tǒng)會(huì)將未經(jīng)身份驗(yàn)證的請(qǐng)求重定向到指定的登錄頁.用戶輸入憑據(jù)(用戶名密碼)并提交該頁.如果驗(yàn)證程序驗(yàn)證用戶的身份合法,則系統(tǒng)會(huì)向客戶端發(fā)出一個(gè)特定 Cookie(.NET1.1不支持無Cookie模式),它代表用戶的身份驗(yàn)證票據(jù).這樣后續(xù)的請(qǐng)求中,客戶端瀏覽器會(huì)把該Cookie一同發(fā)送致服務(wù)器,如果該Cookie有效則用戶通過身份驗(yàn)證并允許對(duì)原始請(qǐng)求的資源的訪問.
授權(quán)
如果用戶的請(qǐng)求被驗(yàn)證通過了,但是他請(qǐng)求的URL是否允許用戶訪問了呢,這就用到了授權(quán).可以通過應(yīng)用程序配置文件來進(jìn)行授友也可以在程序中使用代碼來驗(yàn)證用戶是否有資格訪問該資源.如果授權(quán)失敗,則 ASP.NET 將用戶重定向到登錄頁.如果用戶已被授權(quán),則將允許用戶訪問受保護(hù)資源.
ASP.NET1.1實(shí)現(xiàn)方式
ASP.NET1.1的實(shí)現(xiàn)方式非常簡單,不過我們還是需要手寫一些代碼的,下面我們就一步一步地實(shí)現(xiàn).應(yīng)用程序配置節(jié)的詳細(xì)說明請(qǐng)參考MSDN相關(guān)文檔.
復(fù)制代碼 代碼如下:
<configuration>
<system.web>
<authenticationmodeauthenticationmode="Forms">
<formsnameformsname=".ASPXCOOKIEAUTH"loginUrl=
"Login.aspx"protection="All"timeout="30"path="/"/>
authentication>
<authorization>
<denyusersdenyusers="?"/>
authorization>
system.web>
<locationpathlocationpath="Admin">
<system.web>
<authorization>
<allowrolesallowroles="Admins"/>
<denyusersdenyusers="*"/>
authorization>
system.web>
location>
configuration>
IDC加強(qiáng)asp.net 1.1/2.0安全性一篇技巧
ASP.NET 1.1:
打開 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config
設(shè)置:
< location allowOverride="false">
< identity impersonate="true" userName="" password=""/>
ASP.NET 2.0 以上:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config
設(shè)置:
< identity impersonate="true"/>
如果沒有此兩項(xiàng),分別進(jìn)行增加:
< location allowOverride="true"> 改為:< location allowOverride="false">
< system.web>
< securityPolicy>
< trustLevel name="Full" policyFile="internal"/>
< trustLevel name="High" policyFile="web_hightrust.config"/>
< trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
< trustLevel name="Low" policyFile="web_lowtrust.config"/>
< trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
< /securityPolicy>
< trust level="Full" originUrl=""/>
< identity impersonate="true"/> < !-- 這里增加 -->
< /system.web>
< /location>
相關(guān)文章
WIN2003+IIS6 PHP 5.3.8安裝配置教程[圖文]
WIN2003+IIS6 PHP 5.3.8安裝配置圖文教程,需要的朋友可以參考下2012-09-09iis 訪問由于憑據(jù)無效被拒絕+請(qǐng)求的資源在使用中的解決方法
訪問由于憑據(jù)無效被拒絕+請(qǐng)求的資源在使用中的解決方法2010-04-04登錄遠(yuǎn)程桌面時(shí)遇到“由于客戶端檢測到一個(gè)協(xié)議錯(cuò)誤(代碼0x1104)”
登錄遠(yuǎn)程桌面時(shí)遇到“由于客戶端檢測到一個(gè)協(xié)議錯(cuò)誤(代碼0x1104)”,重新連接N次都還是這個(gè)錯(cuò)誤提示,最后再重起電腦,還是沒用。研究了一下錯(cuò)誤終于解決了。2014-06-06windows下指定IP地址遠(yuǎn)程訪問服務(wù)器的設(shè)置方法
這篇文章主要為大家詳細(xì)介紹了windows下指定IP地址進(jìn)行遠(yuǎn)程訪問服務(wù)器設(shè)置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09Win2003靈活實(shí)現(xiàn)多Web站點(diǎn)的設(shè)置方法[圖文]
其實(shí)這篇教程就是對(duì)于剛接觸服務(wù)器的朋友,如果在一個(gè)服務(wù)器上放置多個(gè)站點(diǎn),使用不同的域名,轉(zhuǎn)到不同的站點(diǎn),其實(shí)主要是在主機(jī)頭值得問題,大家看完這篇基本上可以了解。2008-09-09win2008中設(shè)置計(jì)劃任務(wù)執(zhí)行PHP文件的方法
這篇文章主要介紹了win2008中設(shè)置計(jì)劃任務(wù)執(zhí)行PHP文件的方法,需要的朋友可以參考下2016-06-06Windows2016配置多人遠(yuǎn)程桌面登錄的實(shí)現(xiàn)
很多時(shí)候,公司開發(fā)、測試運(yùn)維會(huì)登錄同一臺(tái)windows服務(wù)器進(jìn)行查詢、更新、維護(hù)等操作,本文就來介紹一下Windows2016配置多人遠(yuǎn)程桌面登錄的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10