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

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