999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASP.NET的Web網絡應用程序開發的安全策略實踐

2006-11-27 07:39:32楊曉明雷光輝何青建
計算機教育 2006年11期

楊曉明 雷光輝 何青建

摘要:Web網絡應用開發中,安全性是要考慮的關鍵問題,本文通過開發系統實踐,從系統規劃階段、設計開發階段、發布運行階段三個方面詳細闡述安全策略的實現,總結出如何充分利用ASP.NET的安全機制、數據庫安全控制、增強管理員網絡安全防范意識,構建一個性能安全的Web應用程序。

關鍵詞:Web應用程序;web.config;認證和授權;視圖;存儲過程

1 前言

微軟公司推出的ASP.NET,可以非常方便和高效地規劃、設計、開發和發布Web網絡應用程序。筆者利用ASP.NET為新疆職工培訓中心開發了運行在校園網上的網絡辦公管理系統。該系統分為管理部門和教學部門兩個角色,實現了數據存儲、瀏覽查詢和教學分析統計功能,提高了培訓中心的信息化管理和校園網的利用價值。在整個系統的開發過程中,考慮最多的就是安全問題,相信這也是所有開發人員開發Web網絡應用程序所必須面對的問題。因此本文針對基于ASP.NET的Web網絡應用程序開發的安全問題,以我們開發的系統為例,從3個方面來闡述實際解決策略:

(1)系統規劃階段的安全策略;

(2)設計開發階段的安全策略;

(3)發布運行階段的安全策略。

希望我們的實踐能對利用ASP.NET開發Web網絡應用程序的相關技術人員提供參考和借鑒。

2 安全策略實踐

2.1系統規劃階段

Web網絡應用程序,就是運行在Web應用服務器上的一個虛擬目錄及其子目錄下的所有文件、網頁、模塊以及可執行代碼的總和。根據系統需求分析,用戶分為管理部和教學部(對數據的操作權限有區分),因此建立兩個目錄分別存放相應的網頁文件。另外,還有數據庫文件夾、樣式文件夾、網頁模版文件夾等。而對數據庫表的操作文件放在特殊的文件夾bin下,因為該目錄是禁止任何瀏覽器訪問的,從而避免了遠程客戶下載代碼的可能性。應用程序根目錄下除了上述目錄外,還有兩個重要的應用程序級文件:global.asax 和web.config(下文詳細分析)。總之,文件目錄的規劃是按類別存放文件,重要文件存在bin目錄下。

2.2設計開發階段

主要從后臺的數據庫設計、配置文件web.config及前臺界面設計三個內容,著重闡述對安全問題的解決策略。

2.2.1數據庫設計

為了提高訪問數據的效率和安全性,能在后臺做的事情,就在后臺完成,能分開獨立做的事情,就分開獨立實現。

(1)充分利用后臺數據庫系統的視圖和存儲過程,如:創建帶參數的視圖,實現不同角色身份的用戶對各自權限范圍內的數據訪問。

(2)報表設計及實現:Web應用程序實現動態報表,開始考慮用ASP.NET的數據控件Repeater,可以自由定義靈活的顯示方式,但通常比較麻煩,而且在代碼中字段名要出現,即:使用數據容器Container.DataItem("字段名")方式來顯示數據內容,降低了數據安全性。我們的做法是利用Bussiness Object 公司開發的專業報表軟件CrystalReports10設計報表,通過ODBC數據源與數據庫連接,生成報表文件(*.rpt)后,在前臺利用報表控件CrystalReprotViewer,將報表文件加載到頁面實現各種報表。這種把數據源、報表文件、和頁面顯示文件分開獨立實現,不僅豐富了報表顯示樣式和提高了網絡報表生成效率,而且極大地提高了訪問數據的安全性。

(3)用戶口令存儲問題:不要將實際的口令存儲在數據庫表中,因為口令直接放在數據庫或文件中存在安全隱患,因此要存儲加密后的口令。使用時,例如當用戶登錄時,對口令加密,然后與數據庫中存放的加密口令進行比較。實現步驟如下:

首先,導入命名空間:<%@ Import Namespace="System.Web.Security" %>

其次,編寫加密函數EncrytPwd:

Function EncrytPwd(Pwd as String,PwdFormat as String)

If PwdFormat="MD5" then

'下面一行得到用MD5算法加密后的字符串

EncrytPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd,"MD5")

'下面一行得到用SHA1算法加密后的字符串

Else if PwdFormat="SHA1"then

EncrytPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd,"SHA1")

End if

End Function

2.2.2 配置文件web.config 的安全設置

web.config文件是一個簡單的XML文件,專門用于為應用程序配置系統設定、安全性設定、應用程序設定和會話設定。下面分5個內容介紹安全實踐策略。

(1) 數據庫連接字符串常量:Web應用程序網頁要大量用到數據庫連接,為了提高程序安全性、通用性和可移植性,在配置文件中設置數據庫連接字符串常量是很好的方法,在應用程序的web.config文件中添加如下語句:

<appSettings>

<addkey="sqlconntion"value="server=localhost;uid=sa;pwd=sa;database=yy;"/>

</appSettings>

網頁文件使用時,用下列代碼實現數據庫連接:

Dim strConn As String

strConn=ConfigurationSettings.AppSettings("sqlconntion ")'獲取數據庫連接字符串

(2) 認證和授權:HTML表單驗證(Forms Authentication),是向開發人員提供確認客戶憑證并控制訪問權限的技術。在應用程序的web.config文件中添加如下語句:

<system.web>

<authenticationmode="Forms">

<formsname="admin_ad"loginUrl="pxb_login.aspx"protection="All"/>

</authentication>

</system.web>

授權:就是讓用戶擁有有效憑證,允許或拒絕訪問Web應用程序。在web.config中添加如下語句:

<authorization>

<denyusers="*"/>

<allowusers="用戶列表"/>

</authorization>

(3)虛擬路徑的設置:不同用戶對不同目錄訪問權限不同,可以設定虛擬目錄來實現。

<locationpath="log">

<system.web>

<authorization>

<allowusers="*"/>

<authorization>

<system.web>

</location>

(4)設置調試模式提高安全策略:默認情況下,錯誤信息保存在棧中。如果開啟調試模式,ASP.NET在運行中發生錯誤時,會顯示錯誤行號,方便調試。可以在頁面或web.config文件中開啟調試模式。例如:

<%@pagedebug=”true”%>'開啟頁面級調試模式

<compilationdefaultLanguage="VB"debug="true"/>

'開啟應用程序級調試模式

但發布程序時,要禁用調試模式,否則出錯時,有泄露后臺代碼的隱患。

(5)頁面出錯處理策略:出錯時轉向統一的出錯頁面,而不必在每個網頁中寫代碼,控制轉向出錯頁面,避免了程序運行期間任何未處理的意外發生時,錯誤頁面代碼泄露或使用戶不知所云的尷尬發生。頁面出錯處理可以應用下列策略實現:

(A)定制出錯網頁

<customErrorsdefault-Redirect="error.htm"mode="remoteonly"/>

這個設置可以保證當錯誤出現時,本地用戶訪問默認出錯頁,遠程用戶訪問自定義的error.htm網頁。

(B)處理特別的HTTP請求

對于HTTP錯誤狀態代碼,例如:403禁止,404無法找到,500服務器錯誤等,可以自定義各自的出錯處理頁面。如下所示:

<errorstatuscode=”403”redirect=”/error/err_support.htm”/>

<errorstatuscode=”404”redirect=”/error/err_nofound.htm”/>

<errorstatuscode=”403”redirect=”/error/err_noaccess.htm”/>

2.2.3界面設計:代碼分離和自定義控件

(1)代碼分離:將程序代碼和HTML內容分離,不僅能增強頁面的條理性、易讀性和團隊開發的容易程度,更重要提高網頁安全性。如:

前臺aspx網頁:peixun_base_

xiangmu.aspx.aspx

<%@RegisterTagPrefix="iewc"Namespace="Microsoft.Web.UI.WebControls"

Assembly="microsoft.web.ui.webcontrols"%>

<%@PageLanguage="vb"AutoEventWireup="false"Codebehind=

"peixun_base_xiangmu.aspx.vb"Inherits="pxb.MUTI"%>

而后臺的peixun_base_xiangmu.aspx.vb文件,專門編寫代碼,實現代碼和HTML內容分離。

(2)自定義控件:可以根據需要編寫自定義控件,更好地提供可重用的封裝邏輯,在使用自定義控件前,需要將定義它們的類文件編譯成動態庫,即:

vbc/t:library/r:system.dll/r:system.web.dll/out:pxbcontrols.dllcontrol.vb

將編寫好的類文件(.vb)編譯成動態庫(.dll),可以供以后多次使用,由于封裝了邏輯,且生成庫,所以安全性得到保障。

除上述外,必須要重視記錄日志。日志文件分系統日志和用戶自定義日志。系統日志,如建立數據庫日志文件;自定義日志文件:可以利用global.asax文件的session_onStart()事件與session_onEnd()事件實現自定義日志文件維護,例如:記錄訪問用戶的登錄名,訪問時間,IP地址等信息,在應用程序根目錄的global.asax文件內添加如下代碼:

<%@ImportNamespace="System.IO"%>

SubSession_onStart(SenderAsObject,EAsEventArgs)

'每一位客戶登錄時觸發該事件

sw=NewStreamWriter(server.mappath("log/log.txt"),True,Encoding.Default)

'將客戶IP保存到Session中

Session("IP")=Request.ServerVariables("REMOTE_ADDR") sw.Writeline(Now()&"-用戶"&Session("IP")&"進入")

sw.Close

EndSub

SubSession_OnEnd(SenderAsObject,EAsEventArgs)

'當每一位客戶超過會話時間沒有和服務器交互,或關閉瀏覽器后觸發該事件

sw=NewStreamWriter(server.mappath("log/log.txt"),True,Encoding.Default)

sw.Writeline(Now()&"-用戶"&Session("IP")&"退出")

sw.Close

EndSub

2.3 發布運行階段:主要考慮如下方面

(1) 關閉調試模式;

(2) 備份轉儲數據庫文件和日志文件;

(3) 密碼要不斷更新;

(4) 及時打補丁程序。

3總結

綜上所述,基于ASP.NET的Web網絡應用程序開發,在充分利用ASP.NET的安全機制、數據庫安全控制、管理員網絡安全防范意識的基礎上,可以極大提高Web應用程序的安全性能。

參考文獻

[1] [美]Steven A.Smith等.用實例學ASP.NET.馬燕,閆立軍等,譯.北京:電子工業出版社,2002.

[2] [美]Macro Bellinaso Kevin Hoffman.ASP.NET Web站點高級編程.康博,譯.北京:清華大學出版社,2002.

[3] [美]John Kauffman 等. ASP.NET數據庫入門經典. 康博,譯.北京:清華大學出版社,2002.

[4] 章立民. 用實例學 Crystal Report for Visual Studio.NET.北京:電子工業出版社,2004.

主站蜘蛛池模板: 国产美女叼嘿视频免费看| 99精品热视频这里只有精品7| 午夜精品区| 国产精品成人免费视频99| 青青网在线国产| 色屁屁一区二区三区视频国产| 国产精品所毛片视频| 22sihu国产精品视频影视资讯| 99热6这里只有精品| 国产屁屁影院| 国产特级毛片aaaaaaa高清| 日韩无码真实干出血视频| 精品偷拍一区二区| 国产日本欧美亚洲精品视| 中文字幕中文字字幕码一二区| 国产精品视频第一专区| 国产成人一区免费观看 | 国产9191精品免费观看| 欧美日韩va| 国产成人8x视频一区二区| 欧美成人看片一区二区三区| 精品国产自| 国产99精品久久| 亚洲日韩精品伊甸| 国产精品一区二区不卡的视频| 中文字幕久久亚洲一区| 国产第一福利影院| 亚洲第一在线播放| 亚洲精品国产首次亮相| 欧美午夜视频| 在线无码av一区二区三区| 伊人五月丁香综合AⅤ| 98超碰在线观看| 亚洲欧美日韩色图| 国产成人无码AV在线播放动漫| 欧美日韩在线第一页| 欧美区日韩区| 精品国产免费第一区二区三区日韩| 国产尤物在线播放| 男女男精品视频| 国产精品久久国产精麻豆99网站| 国产欧美日韩va| 亚洲一区二区日韩欧美gif| 18禁黄无遮挡免费动漫网站| 亚洲精品人成网线在线| 在线欧美日韩| 久久这里只有精品2| P尤物久久99国产综合精品| 国产精品网址你懂的| 亚洲国产中文在线二区三区免| 欧美不卡视频在线| 精品精品国产高清A毛片| 亚洲国产AV无码综合原创| 片在线无码观看| 女人18毛片一级毛片在线 | 亚洲成人动漫在线观看| 免费观看亚洲人成网站| 不卡无码h在线观看| 成人久久精品一区二区三区| 久久人搡人人玩人妻精品| 精品少妇三级亚洲| 精品亚洲麻豆1区2区3区| 日韩在线成年视频人网站观看| 污污网站在线观看| 热这里只有精品国产热门精品| 亚洲天堂网站在线| 欧美精品影院| 扒开粉嫩的小缝隙喷白浆视频| 国产欧美视频综合二区| 亚洲天堂免费观看| 国产成人精品三级| 日韩精品免费一线在线观看| 国产精品视频猛进猛出| 亚洲婷婷六月| 97se亚洲| 久久精品这里只有精99品| 国内老司机精品视频在线播出| 国产一区二区三区在线观看视频| 国产欧美日韩资源在线观看| 亚洲欧美在线看片AI| 亚洲成a人片在线观看88| 99热免费在线|