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