ASP-NET應用開發(fā)教程案例16-Web系統(tǒng)安全和部署課件_第1頁
ASP-NET應用開發(fā)教程案例16-Web系統(tǒng)安全和部署課件_第2頁
ASP-NET應用開發(fā)教程案例16-Web系統(tǒng)安全和部署課件_第3頁
ASP-NET應用開發(fā)教程案例16-Web系統(tǒng)安全和部署課件_第4頁
ASP-NET應用開發(fā)教程案例16-Web系統(tǒng)安全和部署課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、案例16 Web系統(tǒng)安全和部署 授課課時:4課時(180分鐘)216.1 案例描述 Web網(wǎng)站的安全最基本的是用戶輸入環(huán)節(jié),要求具備防范SQL語句的注入式攻擊的能力,以避免給Web系統(tǒng)帶來嚴重的安全威脅。更進一步的可以通過ASP.NET和IIS提供的身份驗證策略、授權策略等構建一個多層次的安全體系以保障Web系統(tǒng)的安全。SQL語句注入式攻擊的示例如圖所示 。案例描述 316.2 案例完成步驟16.2.1 使用參數(shù)化查詢 1創(chuàng)建樣例數(shù)據(jù)庫 本案例要求在SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建名稱為Security的數(shù)據(jù)庫,其中包含一個名稱為tb_Users的數(shù)據(jù)表用來保存Web系統(tǒng)的用

2、戶信息。創(chuàng)建數(shù)據(jù)庫的腳本如下。 416.2 案例完成步驟16.2.1 使用參數(shù)化查詢 2界面設計(1)創(chuàng)建一個名稱為SecurityDemo的網(wǎng)站。(2)將SecurityDemo項目中的默認的Default.aspx改名為Login1.aspx。(3)布局頁面Login1頁面主要Label、TextBox、Button控件組成,這些控件的主要屬性見下表。 516.2 案例完成步驟16.2.1 使用參數(shù)化查詢 616.2 案例完成步驟16.2.1 使用參數(shù)化查詢 最終得到的頁面設計效果如圖所示。該頁面所對應form部分的代碼參閱教材。 716.2 案例完成步驟16.2.1 使用參數(shù)化查詢 3配

3、置Web.Config文件 本次案例要實現(xiàn)連接和操作數(shù)據(jù)庫的功能,因此將數(shù)據(jù)庫的連接字符串保存在Web.Config文件中。在Web.Config文件中配置連接字符串如下所示:其中SQL Server 2005數(shù)據(jù)庫服務器名稱為.sql2005,數(shù)據(jù)庫名稱為Security,登錄用戶名為sa,密碼為123456。 816.2 案例完成步驟16.2.1 使用參數(shù)化查詢 4實現(xiàn)普通登錄功能 普通登錄功能使用普通的方式構建SQL語句進行用戶名和密碼的驗證,最終實現(xiàn)的普通登錄按鈕事件如下所示 916.2 案例完成步驟16.2.1 使用參數(shù)化查詢 Login1.aspx運行后,輸入用戶名demo和密碼d

4、emo,單擊“普通登錄”按鈕,調用btnLogin_Click方法進行用戶名和密碼的驗證,驗證通過后在兩個標簽中分別顯示登錄成功信息和SQL語句信息,程序運行結果如圖所示。 1016.2 案例完成步驟16.2.1 使用參數(shù)化查詢 5實現(xiàn)安全登錄功能 普通登錄功能使用普通的方式構建SQL語句進行用戶名和密碼的驗證,最終實現(xiàn)的安全登錄按鈕事件代碼如下所示 。 1116.2 案例完成步驟16.2.1 使用參數(shù)化查詢 Login1.aspx運行后,輸入用戶名demo和密碼demo,單擊“安全登錄”按鈕,調用btnLoginBetter方法進行用戶名和密碼的驗證,驗證通過后在兩個標簽中分別顯示登錄成功信

5、息和SQL語句信息(輸入的用戶名和密碼受到保護),程序運行結果如圖所示。1216.2 案例完成步驟16.2.2 使用表單身份驗證 表單身份驗證的開發(fā)步驟如下: 將IIS 配置為使用匿名訪問; 將ASP.NET 配置為使用表單身份驗證; 創(chuàng)建登錄Web 表單并驗證提供的憑據(jù); 從自定義數(shù)據(jù)存儲中檢索角色列表; 創(chuàng)建表單身份驗證票證(在票證中存儲角色); 創(chuàng)建一個IPrincipal 對象; 將IPrincipal 對象放到當前的HTTP 上下文中; 基于用戶名/角色成員身份對用戶進行授權。 1316.2 案例完成步驟16.2.2 使用表單身份驗證 1創(chuàng)建存儲過程sp_getUserInfo 由于

6、要使用加密字符串,這里借助于存儲過程來根據(jù)指定的用戶名獲得其密碼。創(chuàng)建存儲過程sp_getUserInfo的腳本如下: 1416.2 案例完成步驟16.2.2 使用表單身份驗證 2配置Web.Config文件在Web.Config文件中添加啟用Forms表單驗證的語句如下: 由于使用相同的數(shù)據(jù)庫,該實例使用的連接字符串的同上例,在此不做重復配置。 1516.2 案例完成步驟16.2.2 使用表單身份驗證 3設計和實現(xiàn)注冊頁面(1)在SecurityDemo網(wǎng)站中新建名稱為Register.aspx的Web頁面。(2)設計注冊頁面Register頁面主要Label、TextBox、Button和

7、驗證控件組成,這些控件的主要屬性見下表。 1616.2 案例完成步驟16.2.2 使用表單身份驗證 最終得到的頁面設計效果如圖所示。 1716.2 案例完成步驟16.2.2 使用表單身份驗證 1816.2 案例完成步驟16.2.2 使用表單身份驗證 1916.2 案例完成步驟16.2.2 使用表單身份驗證 程序運行后,輸入用戶名和密碼(分別為formdemo),如圖所示。單擊“注冊”按鈕,首先由驗證控件完成數(shù)據(jù)輸入的合法性驗證,再把用戶名和加密后的密碼寫入到數(shù)據(jù)庫,注冊成功將會顯示“注冊成功”的信息,如圖所示。 2016.2 案例完成步驟16.2.2 使用表單身份驗證 在SQL Server

8、2005中查看到新注冊的用戶信息,我們發(fā)現(xiàn)該用戶的u_Pass和u_SaltPass都已經(jīng)被加密,如圖所示。 2116.2 案例完成步驟16.2.2 使用表單身份驗證 4設計和實現(xiàn)登錄頁面(Login2.aspx)(1)在SecurityDemo網(wǎng)站中新建名稱為Login2.aspx的Web頁面。(2)設計登錄頁面 Login2.aspx頁面的設計與注冊頁面Register.aspx頁面大同小異,主要增加了一個CheckBox用于選擇是否保存Cookie,頁面控件及其詳細屬性在此不再重復。最終得到的頁面設計效果如圖所示 。 2216.2 案例完成步驟16.2.2 使用表單身份驗證 (3)實現(xiàn)注

9、冊功能 本程序對輸入的用戶和密碼進行驗證,最終完成的“登錄”按鈕的事件代碼如下: 2316.2 案例完成步驟16.2.2 使用表單身份驗證 (3)實現(xiàn)注冊功能 本程序對輸入的用戶和密碼進行驗證,最終完成的“登錄”按鈕的事件代碼參閱教材。 2416.2 案例完成步驟16.2.2 使用表單身份驗證 5設計和實現(xiàn)測試頁面(Test.aspx)(1)在SecurityDemo網(wǎng)站中新建名稱為Test.aspx的Web頁面。(2)設計測試頁面Test.aspx頁面使用四個標簽用于顯示登錄用戶名和用戶身份。并通過一個“注銷”按鈕返回。最終得到的頁面設計效果如圖所示。 2516.2 案例完成步驟16.2.2

10、 使用表單身份驗證 (3)實現(xiàn)注銷功能本程序用于顯示已注冊的用戶名及其身份,并提供注銷功能,最終完成的頁面啟動時和“注銷”按鈕的事件代碼如下 2616.2 案例完成步驟16.2.2 使用表單身份驗證 6運行程序 使用注冊程序進行用戶注冊后,啟動Login2.aspx程序,輸入用戶名和密碼(分別為formdemo),如圖所示。單擊“登錄”按鈕,首先由驗證控件完成數(shù)據(jù)輸入的合法性驗證,再進行用戶名和密碼驗證,登錄成功將會跳轉到測試頁面(Test.aspx)并顯示登錄用戶的信息,如圖所示。 2716.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 1發(fā)布ASP.NET程序(1)打開“Se

11、curityDemo”網(wǎng)站,在“解決方案資源管理器”中,右鍵單擊要發(fā)布的網(wǎng)站SecurityDemo,在彈出菜單中選擇“發(fā)布網(wǎng)站”,如圖所示。打開“發(fā)布網(wǎng)站”對話框。 2816.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 (2)在“發(fā)布網(wǎng)站”對話框中,在該對話框中的“目標位置”文本框中輸入或通過單擊右側的按鈕選擇要發(fā)布網(wǎng)站的目標位置,這里發(fā)布網(wǎng)站的目標位置為“e:Security”,如圖所示。 2916.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 (3)單擊“確定”按鈕,Microsoft Visual Studion 2005將編譯網(wǎng)站的內容,并將編譯的文件輸

12、出到指定的文件夾中,在“輸出”窗口將會顯示編譯的進度信息,如果編譯時發(fā)生一個錯誤,“輸出”窗口會報告該錯誤。發(fā)布成功后在目標文件夾(E:Security)可以查看到發(fā)布后的文件,如圖所示 。 3016.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 2測試發(fā)布的網(wǎng)站 網(wǎng)站發(fā)布完成后,可以通過Web服務器運行網(wǎng)站來對網(wǎng)站進行測試。要運行網(wǎng)站有兩種方法可以實現(xiàn),一是創(chuàng)建一個指向目標文件夾的IIS虛擬目錄;二是將發(fā)布后的目標文件夾設置為Web共享。方法一:配置IIS虛擬目錄使用IIS管理工具創(chuàng)建虛擬目錄的主要操作步驟如下。(1)打開“控件面板”中的“管理工具”,雙擊“Internet信息

13、服務管理器”,打開 “Internet信息服務(IIS)管理器”對話框。(2)在“Internet信息服務(IIS)管理器”中,依次選擇“網(wǎng)站”“默認網(wǎng)站”節(jié)點,單擊鼠標右鍵,在彈出的菜單中,選擇“新建”“虛擬目錄”命令,如圖所示。 3116.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 3216.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 (3)打下“虛擬目錄創(chuàng)建向導”對話框,單擊“下一步”按鈕,打開“虛擬目錄別名”對話框,在“別名”文本框中輸入虛擬目錄的別名,這里虛擬目錄別名為“Security”,如圖所示。然后單擊“下一步”按鈕,打開“虛擬內容目錄”對話框,

14、這里指定虛擬目錄站點的路徑為“E:Security”,如圖所示。 3316.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 (4)完成虛擬目錄路徑設置之后,單擊“下一步”按鈕,打開“訪問權限”對話框,選擇相應的權限,如圖所示。單擊“下一步”按鈕彈出“Internet管理器”對話框,選擇“是”按鈕,彈出“已完成虛擬目錄創(chuàng)建向導”對話框,單擊“完成”按鈕,虛擬目錄創(chuàng)建成功。返回“Internet信息服務”對話框。 3416.2 案例完成步驟16.2.3 發(fā)布與測試ASP.NET程序 方法二:設置Web共享首先選擇Web項目所在的文件夾(如E:Security),然后右擊文件夾,在打開的

15、快捷菜單中選擇“共享和安全”命令或者選擇“屬性”命令打開“屬性”對話框,切換到“Web共享”選項卡,如圖所示。 3516.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 1打包網(wǎng)站打包就是制作安裝程序即將應用程序包裝成易于部署的形式,包裝好之后的應用程序可以方便地安裝到目標服務器上。打包網(wǎng)站的操作步驟如下。(1)打開“SecurityDemo”網(wǎng)站。(2)選擇“文件”“添加”“新建項目”命令。(3)打開“添加新項目”對話框,在“項目類型”列表中選擇“其他項目類型”“安裝和部署”節(jié)點,在右側的“模板”列表中選擇“Web安裝項目”,在“名稱”文本框中輸入存放打包網(wǎng)站的文件夾名稱,在“位置”文本框中輸

16、入存放打包網(wǎng)站文件夾的目標地址,設置結果如圖所示。 3616.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 3716.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 (4)單擊“確定”按鈕,Web安裝項目已經(jīng)添加到“解決方案資源管理器”中,并且“文件系統(tǒng)編輯器”處于打開狀態(tài),如圖所示。3816.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 (5)在“文件系統(tǒng)編輯器”中右鍵單擊“Web應用程序文件夾”,在彈出的快捷菜單中選擇“添加”“項目輸出”命令,如圖所示 。3916.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 (6)在打開的“添加項目輸出組”對話框中,各選項保留默認值,如圖所示。(7)單擊“

17、確定”按鈕,即可將“內容文件”添加到打包網(wǎng)站中。在“文件系統(tǒng)編輯器”中將會出現(xiàn)內容輸出文件 。(8)選擇“生成”“生成SecuritySetup”命令,生成安裝文件,生成安裝項目文件夾中的內容如圖所示。 4016.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 2安裝網(wǎng)站安裝該網(wǎng)站的具體操作步驟如下:(1)打開安裝程序生成目錄,在“Debug”文件夾雙擊“setup.exe”,打開“安裝向導歡迎”對話框。(2)單擊“下一步”按鈕彈出“選擇安裝地址”對話框,設置虛擬目錄為Security,其他各項都使用默認值,如圖所示。 4116.2 案例完成步驟16.2.4 打包與安裝網(wǎng)站 (3)單擊“下一步”

18、按鈕彈出“確認安裝”對話框,單擊“下一步”按鈕進行項目安裝,項目安裝完成后,彈出“安裝完成”對話框。(4)單擊“關閉”按鈕,完成項目安裝。項目安裝完成后,在“Internet信息服務”對話框中就會出現(xiàn)“Security”虛擬目錄,同時在IIS的主目錄下可以找到“Security”文件夾,該文件夾下就會有網(wǎng)站運行的基本文件。通過瀏覽器即可訪問該網(wǎng)站的相關頁面。 4216.3 知識鏈接16.3.1 SQL注入式攻擊 1什么是SQL注入式攻擊 所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執(zhí)行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用

19、來構造(或者影響)動態(tài)SQL命令,或作為存儲過程的輸入?yún)?shù),這類表單特別容易受到SQL注入式攻擊。 4316.3 知識鏈接16.3.1 SQL注入式攻擊 2如何有效防范SQL注入式攻擊 (1)對于動態(tài)構造SQL查詢的場合,可以使用下面的方法: 方法一:替換SQL語句中的單引號。方法二:刪除用戶輸入內容中的所有連字符。防止攻擊者構造出類如“SELECT * from tb_Users WHERE u_Name = liuzc - AND u_Pass =”之類的查詢,因為這類查詢的后半部分已經(jīng)被注釋掉,不再有效,攻擊者只要知道一個合法的用戶登錄名稱,根本不需要知道用戶的密碼就可以順利獲得訪問權限。 方法三:對于用來執(zhí)行查詢的數(shù)據(jù)庫帳戶,限制其權限。用不同的用戶帳戶執(zhí)行查詢、插入、更新、刪除操作。由于隔離了不同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論