創建安全web站點-ASP.NET篇
發表于:2008-04-08來源:作者:點擊數:
標簽:
以前用ASP, PHP ,JSP 編寫網站代碼的時候,站點 安全性總是一件頭疼的事情,雖然我們編寫了用戶登錄,注冊,驗證頁面,但是效果總是不理想。有時候我們不得不用大量的session變量來存放相關信息,處處設防。而在.NET環境下,這個問題處理起來就非常容易了。關
以前用ASP,
PHP,JSP
編寫網站代碼的時候,站點安全性總是一件頭疼的事情,雖然我們編寫了用戶登錄,注冊,驗證頁面,但是效果總是不理想。有時候我們不得不用大量的session變量來存放相關信息,處處設防。而在.NET環境下,這個問題處理起來就非常容易了。關鍵是要充分理解web.config文件。首先,介紹一下web.config文件。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<!-- 動態調試編譯設置 compilation de
bug="true" 以將調試符號(.pdb 信息)插入到編譯頁中。因為這將創建執行起來、較慢的大文件,所以應該只在調試時將該值設置為 true,而所有其他時候都設置為false。有關更多信息,請參考有關 調試 ASP.NET 文件的文檔。
-->
<compilation defaultLanguage="
vb" debug="true" />
<!-- 自定義錯誤信息設置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設置為 "Off" 以禁用自定義錯誤信息。為每個要處理的錯誤添加 <error> 標記。
-->
<customErrors mode="RemoteOnly" />
<!-- 身份驗證
此節設置應用程序的身份驗證策略??赡艿哪J绞荺“Windows\”、\“Forms\”、\“Passport\”和 \“None\”
-->
<authentication mode="Windows" />
<!-- 授權此節設置應用程序的授權策略??梢栽试S或拒絕用戶或角色訪問應用程序資源。通配符:"*" 表示任何人,"?" 表示匿名(未授權的)用戶。
-->
<authorization>
<allow users="*" /> <!-- 允許所有用戶 -->
<!-- <allow users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
<deny users="[逗號分隔的用戶列表]"
roles="[逗號分隔的角色列表]"/>
-->
</authorization>
<!-- 應用程序級別跟蹤記錄應用程序級別跟蹤在應用程序內為每一頁啟用跟蹤日志輸出。設置 trace enabled="true" 以啟用應用程序跟蹤記錄。如果 pageOutput="true",則跟蹤信息將顯示在每一頁的底部。否則,可以通過從 Web 應用程序根瀏覽 "trace.axd" 頁來查看應用程序跟蹤日志。
-->
<traceenabled="false"requestLimit="10"pageOutput="false"traceMode="SortByTime" localOnly="true" />
<!-- 會話狀態設置
默認情況下,ASP.NET 使用 cookie 標識哪些請求屬于特定的會話。 如果 cookie 不可用,則可以通過將會話標識符添加到 URL 來跟蹤會話。 若要禁用 cookie,請設置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
<!-- 全球化
此節設置應用程序的全球化設置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
</configuration>
好了,相信看過上面的介紹以后,對web.config文件一定非常了解了吧。下面我們就切入主題。為了防止用戶沒有經過驗證就訪問站點,我們的處理方法是當用戶沒有通過驗證的時候點擊任何頁面將會直接跳到Login.aspx頁面,具體代碼如下:
<authentication mode="Forms">
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
原文轉自:http://www.anti-gravitydesign.com