一、什么是xss攻擊
XSS即(Cross Site Scripting)中文名稱為:跨站腳本攻擊。XSS的重點(diǎn)不在于跨站點(diǎn),而在于腳本的執(zhí)行。那么XSS的原理是:惡意攻擊者在web頁(yè)面中會(huì)插入一些惡意的script代碼。當(dāng)用戶瀏覽該頁(yè)面的時(shí)候,那么嵌入到web頁(yè)面中script代碼會(huì)執(zhí)行,因此會(huì)達(dá)到惡意攻擊用戶的目的。

二、xss攻擊的種類及防御方式
XSS攻擊最主要有如下分類:反射型、存儲(chǔ)型、及DOM-based型。反射性和DOM-baseed型可以歸類為非持久性XSS攻擊。存儲(chǔ)型可以歸類為持久性XSS攻擊。
1、反射性XSS
反射性XSS的原理是:反射性xss一般指攻擊者通過特定的方式來誘惑受害者去訪問一個(gè)包含惡意代碼的URL。當(dāng)受害者點(diǎn)擊惡意鏈接url的時(shí)候,惡意代碼會(huì)直接在受害者的主機(jī)上的瀏覽器執(zhí)行。常見的反射性XSS有哪些?常見的是惡意鏈接。
2、存儲(chǔ)性XSS
存儲(chǔ)型XSS的原理是:主要是將惡意代碼上傳或存儲(chǔ)到服務(wù)器中,下次只要受害者瀏覽包含此惡意代碼的頁(yè)面就會(huì)執(zhí)行惡意代碼。
如何防范?后端需要對(duì)提交的數(shù)據(jù)進(jìn)行過濾。前端也可以做一下處理方式,比如對(duì)script標(biāo)簽,將特殊字符替換成HTML編碼這些等。
3、DOM-based型XSS
DOM XSS是基于文檔對(duì)象模型的XSS。
一般有如下DOM操作:使用document.write直接輸出數(shù)據(jù)。使用innerHTML直接輸出數(shù)據(jù)。使用location、location.href、location.replace、iframe.src、document.referer、window.name等這些。
4、SQL注入
SQL注入是通過客戶端的輸入把SQL命令注入到一個(gè)應(yīng)用的數(shù)據(jù)庫(kù)中,從而執(zhí)行惡意的SQL語句。