JavaWeb程序設(shè)計(jì) 課件 ch15 Web 網(wǎng)站安全_第1頁(yè)
JavaWeb程序設(shè)計(jì) 課件 ch15 Web 網(wǎng)站安全_第2頁(yè)
JavaWeb程序設(shè)計(jì) 課件 ch15 Web 網(wǎng)站安全_第3頁(yè)
JavaWeb程序設(shè)計(jì) 課件 ch15 Web 網(wǎng)站安全_第4頁(yè)
JavaWeb程序設(shè)計(jì) 課件 ch15 Web 網(wǎng)站安全_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第15章Web網(wǎng)站安全本課教學(xué)內(nèi)容URL操作攻擊Web跨站腳本攻擊SQL注入密碼保護(hù)與驗(yàn)證URL操作攻擊URL操作攻擊介紹例子中,該訂單從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)的URL為:http://IP:端口/目錄/display.jsp?orderno=10034562因?yàn)榈谝粋€(gè)訂單的編號(hào)為10034562,所以,從客戶端源代碼上講,第一個(gè)訂單右邊的"查看明細(xì)"鏈接看起來(lái)是這樣的:URL操作攻擊URL操作攻擊介紹

<ahref="http://IP:端口/目錄/display.jsp?orderno=10034562">查看明細(xì)</a>

該URL非常直觀,可以從中看到是獲取訂單號(hào)為10034562的數(shù)據(jù),因此,給了攻擊者機(jī)會(huì)。URL操作攻擊URL操作攻擊介紹攻擊者可以很容易地嘗試將如下URL輸入到地址欄中http://IP:端口/目錄/display.jsp?orderno=10034563表示命令數(shù)據(jù)庫(kù)查詢訂單號(hào)為10034563的明細(xì)信息。因?yàn)樵撚唵蚊骷?xì)在數(shù)據(jù)庫(kù)表的T_ORDERITEM中存在,這里就造成了一個(gè)不安全的現(xiàn)象:用戶可以查詢不是他購(gòu)買(mǎi)的鮮花訂單信息。URL操作攻擊還有更加嚴(yán)重的情況,如果網(wǎng)站足夠不安全的話,攻擊者可以不用登錄,直接輸入上面格式的URL(如http://IP:端口/目錄/display.jsp?orderno=10034585),將信息顯示出來(lái)。這樣,上面的Web程序?qū)е略擋r花訂購(gòu)系統(tǒng)網(wǎng)站為URL操作攻擊敞開(kāi)了大門(mén)解決方法要解決以上URL操作攻擊,需要程序員進(jìn)行非常周全的考慮。程序員在編寫(xiě)Web應(yīng)用的時(shí)候,可以從以下兩個(gè)方面加以注意:1.

為了避免非登錄用戶進(jìn)行訪問(wèn),對(duì)于每一個(gè)只有登錄成功才能訪問(wèn)的頁(yè)面,應(yīng)該進(jìn)行session的檢查(session檢查的內(nèi)容已經(jīng)在前面章節(jié)提到)2.為限制用戶訪問(wèn)未被授權(quán)的資源,可在查詢時(shí)將登錄用戶的用戶名也考慮進(jìn)去。如用戶名為guokehua,所以guokehua的每一個(gè)訂單后面的"查看明細(xì)"鏈接可以設(shè)計(jì)為這樣:<ahref="http://IP:端口/目錄/display.jsp?orderno=10034563&account=guokehua"> 查看明細(xì) </a>解決方法解決方法 這樣,用于該訂單從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)的URL為: http://ip:端口/目錄/display.jsp?orderno=10034563&account=guokehua在向數(shù)據(jù)庫(kù)查詢時(shí),就可以首先檢查"guokehua"是否在登錄狀態(tài),然后根據(jù)訂單號(hào)(10034563)和用戶名(guokehua)綜合進(jìn)行查詢。這樣,攻擊者單獨(dú)輸入訂單號(hào),或者輸入訂單號(hào)和未登錄的用戶名,都無(wú)法顯示結(jié)果Web跨站腳本攻擊跨站腳本攻擊的原理跨站腳本在英文中稱為Cross-SiteScripting,縮寫(xiě)為CSS。但是,由于層疊樣式表(CascadingStyleSheets)的縮寫(xiě)也為CSS,為不與其混淆,特將跨站腳本縮寫(xiě)為XSSWeb跨站腳本攻擊跨站腳本攻擊的原理

跨站腳本,顧名思義,就是惡意攻擊者利用網(wǎng)站漏洞往Web頁(yè)面里插入惡意代碼。跨站腳本攻擊,一般需要以下幾個(gè)條件:Web跨站腳本攻擊跨站腳本攻擊條件:客戶端訪問(wèn)的網(wǎng)站是一個(gè)有漏洞的網(wǎng)站,但是他沒(méi)有意識(shí)到攻擊者在這個(gè)網(wǎng)站中,通過(guò)一些手段放入一段可以執(zhí)行的代碼,吸引客戶執(zhí)行(如通過(guò)鼠標(biāo)點(diǎn)擊等)客戶點(diǎn)擊后,代碼執(zhí)行,可以達(dá)到攻擊目的Web跨站腳本攻擊具體代碼示例見(jiàn)課本W(wǎng)eb跨站腳本攻擊在實(shí)際項(xiàng)目中,攻擊過(guò)程稍微復(fù)雜一些。如前所述,攻擊者為了得到客戶的隱秘信息,一般會(huì)在網(wǎng)站中通過(guò)一些手段放入一段可以執(zhí)行的代碼,吸引客戶執(zhí)行(通過(guò)鼠標(biāo)點(diǎn)擊等);客戶點(diǎn)擊后,代碼執(zhí)行,可以達(dá)到攻擊目的。Web跨站腳本攻擊以下這些程序模擬了一個(gè)通過(guò)站內(nèi)點(diǎn)擊鏈接的攻擊過(guò)程。login.jsp、loginResult.jsp、mailList.jsp、attackPage.asp具體代碼示例見(jiàn)課本跨站腳本攻擊的危害XSS攻擊的主要危害包括:盜取用戶的各類(lèi)敏感信息,如賬號(hào)密碼等讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)讀取企業(yè)重要的具有商業(yè)價(jià)值的資料控制受害者機(jī)器向其他網(wǎng)站發(fā)起攻擊防范方法對(duì)于XSS攻擊的防范,主要從網(wǎng)站開(kāi)發(fā)者角度和用戶角度來(lái)闡述從網(wǎng)站開(kāi)發(fā)者角度,對(duì)XSS最佳的防護(hù)主要體現(xiàn)在以下兩個(gè)方面:1.對(duì)于任意的輸入數(shù)據(jù)應(yīng)該進(jìn)行驗(yàn)證,以有效檢測(cè)攻擊防范方法2.對(duì)于任意的輸出數(shù)據(jù),要進(jìn)行適當(dāng)?shù)木幋a,防止任何已成功注入的腳本在瀏覽器端運(yùn)行;數(shù)據(jù)輸出前,確保用戶提交的數(shù)據(jù)已被正確進(jìn)行編碼;可在代碼中明確指定輸出的編碼方式(如ISO-8859-1),而不是讓攻擊者發(fā)送一個(gè)由他自己編碼的腳本給用戶防范方法以下具體闡述一種實(shí)現(xiàn)方法:XSS攻擊的一個(gè)來(lái)源在于,用戶登錄時(shí),可以讓那些特殊的字符也輸入進(jìn)去。因此可在表單提交的過(guò)程中,利用一定手段來(lái)進(jìn)行限制。例如,可以限制輸入的字符數(shù),來(lái)阻止那些較長(zhǎng)的script的輸入。另外可以Javascript來(lái)對(duì)字符進(jìn)行過(guò)濾,將一些如%、<、>、[、]、{、}、;、&、+、-、"、(、)的字符過(guò)濾掉。防范方法從網(wǎng)站用戶角度1.作為網(wǎng)站用戶,打開(kāi)一些Email或附件、瀏覽論壇帖子時(shí),做操作時(shí)一定要特別謹(jǐn)慎,否則有可能導(dǎo)致惡意腳本執(zhí)行。不過(guò),也可以在瀏覽器設(shè)置中關(guān)閉JavaScript2.如果是IE的,可以點(diǎn)擊"工具"——"Internet選項(xiàng)"——"安全"——"自定義級(jí)別"進(jìn)行設(shè)置SQL注入SQL注入的原理

SQL注入在英文中稱為SQLInjection,是黑客對(duì)Web數(shù)據(jù)庫(kù)進(jìn)行攻擊的常用手段之一。在這種攻擊方式中,惡意代碼被插入到查詢字符串中,然后將該字符串傳遞到數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行執(zhí)行,根據(jù)數(shù)據(jù)庫(kù)返回的結(jié)果,獲得某些數(shù)據(jù)并發(fā)起進(jìn)一步攻擊。SQL注入具體代碼示例見(jiàn)課本SQL注入攻擊的危害SQL注入攻擊的主要危害包括:非法讀取、篡改、添加、刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。盜取用戶的各類(lèi)敏感信息,獲取利益通過(guò)修改數(shù)據(jù)庫(kù)來(lái)修改網(wǎng)頁(yè)上的內(nèi)容私自添加或刪除賬號(hào)注入木馬等SQL注入攻擊的危害由于SQL注入攻擊一般利用的是SQL語(yǔ)法,這使得于所有基于SQL語(yǔ)言標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)軟件,如SQLServer,Oracle,MySQL,DB2等都有可能受到攻擊,并且攻擊的發(fā)生和Web編程語(yǔ)言本身也無(wú)關(guān),如ASP、JSP、PHP,在理論上都無(wú)法完全幸免。SQL注入攻擊的危害SQL注入攻擊的危險(xiǎn)是比較大的。很多其他的攻擊,如DoS等,可能通過(guò)防火墻等手段進(jìn)行阻攔,但是而對(duì)于SQL注入攻擊,由于注入訪問(wèn)是通過(guò)正常用戶端進(jìn)行的,所以普通防火墻對(duì)此不會(huì)發(fā)出警示,一般只能通過(guò)程序來(lái)控制,而SQL攻擊一般可以直接訪問(wèn)數(shù)據(jù)庫(kù),進(jìn)而甚至能夠獲得數(shù)據(jù)庫(kù)所在的服務(wù)器的訪問(wèn)權(quán),因此,危害相當(dāng)嚴(yán)重。防范方法以上問(wèn)題的解決方法有很多種,比較常見(jiàn)的有:將輸入中的單引號(hào)變成雙引號(hào)使用存儲(chǔ)過(guò)程認(rèn)真對(duì)表單輸入進(jìn)行校驗(yàn),從查詢變量中濾去盡可能多的可疑字符使用編程技巧密碼保護(hù)與驗(yàn)證Web網(wǎng)站中,很多系統(tǒng)中都涉及到存儲(chǔ)用戶密碼。怎樣將密碼儲(chǔ)存到數(shù)據(jù)庫(kù)中?如果密碼能夠以明文形式被看到,很明顯,一旦攻擊者取得了管理員權(quán)限,或者攻擊者本身就是管理員,就可以看到用戶密碼。因此,密碼保護(hù)顯得非常重要密碼保護(hù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論