反射型XSS(也叫非持久型):惡意JavaScript腳本屬于用戶發(fā)送給網(wǎng)站請求中的一部分,隨后網(wǎng)站又將這部分返回給用戶,惡意腳本在頁面中被執(zhí)行,一般發(fā)生在前后端一體的應(yīng)用中,服務(wù)端邏輯會改變最終的網(wǎng)頁代碼。
基于DOM的XSS:這種攻擊不需要經(jīng)過服務(wù)器,網(wǎng)頁本身的JavaScript也是可以改變HTML的,黑客正是利用這一點來實現(xiàn)插入惡意腳本。
存儲型XSS(也叫持久型XSS):黑客將惡意JavaScript腳本長期保存在服務(wù)端數(shù)據(jù)庫中,用戶一旦訪問相關(guān)頁面數(shù)據(jù),惡意腳本就會被執(zhí)行。常見于搜索、微博、社區(qū)貼吧評論等。
區(qū)別:反射型的XSS 的惡意腳本存在URL 里,存儲型XSS 的惡意代碼存在數(shù)據(jù)庫里。而基于DOM型的XSS攻擊中,取出和執(zhí)行惡意代碼由瀏覽器端完成,屬于前端JavaScript自身的安全漏洞,其他兩種XSS都屬于服務(wù)端的安全漏洞。