更新時(shí)間:2022-08-12 來(lái)源:黑馬程序員 瀏覽量:
XSS(Cross Site Scripting)是Web應(yīng)用系統(tǒng)最常見(jiàn)的安全漏洞之一,它主要源于Web應(yīng)用程序?qū)τ脩?hù)輸入檢查和過(guò)濾不足。攻擊者可以利用XSS漏洞把惡意代碼(HTML代碼或JavaScript腳本)注入網(wǎng)站中,當(dāng)有用戶(hù)瀏覽該網(wǎng)站時(shí),這些惡意代碼就會(huì)被執(zhí)行,從而達(dá)到攻擊的目的。
通常,在XSS攻擊中,攻擊者會(huì)通過(guò)郵件或其他方式誘使用戶(hù)點(diǎn)擊包含惡意代碼的鏈接,例如攻擊者通過(guò)E-mail向用戶(hù)發(fā)送一個(gè)包含惡意代碼的網(wǎng)站home.com,用戶(hù)點(diǎn)擊鏈接后,瀏覽器會(huì)在用戶(hù)毫不知情的情況下執(zhí)行鏈接中包含的惡意代碼,將用戶(hù)與home.com交互的Cookie和Session等信息發(fā)送給攻擊者,攻擊者拿到這些數(shù)據(jù)之后,就會(huì)偽裝成用戶(hù)與真正的網(wǎng)站進(jìn)行會(huì)話(huà),從事非法活動(dòng),其過(guò)程如圖5-2所示。
圖5-2 XSS攻擊過(guò)程
對(duì)于XSS漏洞,最核心的防御措施就是對(duì)用戶(hù)的輸入進(jìn)行檢查和過(guò)濾,包括URL、查詢(xún)關(guān)鍵字、HTTP頭、POST數(shù)據(jù)等,僅接受指定長(zhǎng)度范圍、格式適當(dāng)、符合預(yù)期的內(nèi)容,對(duì)其他不符合預(yù)期的內(nèi)容一律進(jìn)行過(guò)濾。除此之外,當(dāng)向HTML標(biāo)簽或?qū)傩灾胁迦氩豢尚艛?shù)據(jù)時(shí),要對(duì)這些數(shù)據(jù)進(jìn)行相應(yīng)的編碼處理。將重要的Cookie標(biāo)記為http only,這樣JavaScript腳本就不能訪問(wèn)這個(gè)Cookie,避免了攻擊者利用JavaScript腳本獲取Cookie。