1. 什么是XSS?
CSRF(Cross-site request forgery)沟启,中文名稱:跨站請求偽造。
將惡意代碼植入到提供給其他用戶使用的頁面中段审,簡單的理解為一種javascript代碼注入全蝶。
2. XSS危害
- 掛馬
- 盜取用戶Cookie。
- DOS(拒絕服務)客戶端瀏覽器。
- 釣魚攻擊抑淫,高級的釣魚技巧绷落。
- 刪除目標文章、惡意篡改數(shù)據(jù)始苇、嫁禍砌烁。
- 劫持用戶Web行為,甚至進一步滲透內(nèi)網(wǎng)催式。
- 爆發(fā)Web2.0蠕蟲函喉。
- 蠕蟲式的DDoS攻擊。
- 蠕蟲式掛馬攻擊荣月、刷廣告函似、刷瀏量、破壞網(wǎng)上數(shù)據(jù)
3.XSS分類
XSS分為三類:
- 反射型XSS(非持久型)
- 發(fā)出請求時喉童,XSS代碼出現(xiàn)在URL中撇寞,作為輸入提交到服務器端,服務器端解析后響應堂氯,XSS代碼隨響應內(nèi)容一起傳回給瀏覽器蔑担,最后瀏覽器解析執(zhí)行XSS代碼。這個過程像一次反射咽白,故叫反射型XSS啤握。
- 存儲型XSS(持久型)
- 存儲型XSS和反射型XSS的差別僅在于,提交的代碼會存儲在服務器端(數(shù)據(jù)庫晶框,內(nèi)存排抬,文件系統(tǒng)等),下次請求目標頁面時不用再提交XSS代碼蹲蒲。
- DOM XSS(客戶端)
- DOM XSS和反射型XSS、存儲型XSS的差別在于DOM XSS的代碼并不需要服務器參與侵贵,觸發(fā)XSS靠的是瀏覽器端的DOM解析届搁,完全是客戶端的事情。
4.XSS的防御措施:
- 過濾轉義輸入輸出
- 避免使用eval窍育、new Function等執(zhí)行字符串的方法卡睦,除非確定字符串和用戶輸入無關
- 使用cookie的httpOnly屬性,加上了這個屬性的cookie字段漱抓,js是無法進行讀寫的
- 使用innerHTML表锻、document.write的時候,如果數(shù)據(jù)是用戶輸入的乞娄,那么需要對象關鍵字符進行過濾與轉義