跨站腳本攻擊英文全稱是Cross Site Scripting,本來縮寫是CSS,但為了與層疊樣式(Casading Style Sheet,CSS)區(qū)別,所以在安全領(lǐng)域叫做“XSS”。
XSS攻擊,通常指黑客通過“HTML注入”篡改了網(wǎng)頁,插入惡意腳本,從而在用戶瀏覽網(wǎng)頁時(shí),控制用戶瀏覽器的一種攻擊。

ps:
sql注入與xss攻擊都是因?yàn)閳?zhí)行了用戶輸入的代碼導(dǎo)致的漏洞,它們的區(qū)別在哪?
直接攻擊對象不同:sql注入是服務(wù)端的攻擊,xss攻擊是客戶端的攻擊
XSS危害:
XSS常被列為是客戶端web安全中的頭號(hào)大敵。因?yàn)閄SS的破壞力強(qiáng)大,且場景復(fù)雜,難以一次性解決?,F(xiàn)在業(yè)界內(nèi)打成的共識(shí)是:針對不同產(chǎn)生場景的XSS,區(qū)分對待。
XSS根據(jù)效果的不同可以分為以下幾種:反射性XSS、存儲(chǔ)性XSS、DOM Based XSS。
第一種類型:反射性XSS
反射型xss只是簡單地把用戶輸入的數(shù)據(jù)“反射”給瀏覽器,發(fā)出請求時(shí),XSS代碼出現(xiàn)在URL中,作為輸入提交到服務(wù)器端,服務(wù)器端解析后響應(yīng),XSS代碼隨響應(yīng)內(nèi)容一起傳回給瀏覽器,最后瀏覽器解析執(zhí)行XSS代碼。這個(gè)過程像一次反射,故叫反射型XSS。又叫非持久型XSS。
常見場景:黑客需要通過圖片或者某中方式隱藏一個(gè)惡意鏈接,誘拐用戶去點(diǎn)擊,從而達(dá)到攻擊效果。
第二種類型:存儲(chǔ)性XSS
存儲(chǔ)性XSS會(huì)把用戶輸入的數(shù)據(jù)“存儲(chǔ)”在服務(wù)端。這種XSS攻擊具有很強(qiáng)的穩(wěn)定性。又叫持久型XSS。
存儲(chǔ)型XSS和反射型XSS的差別僅在于,提交的代碼會(huì)存儲(chǔ)在服務(wù)器端(數(shù)據(jù)庫、內(nèi)存、文件系統(tǒng)等),下次請求目標(biāo)頁面時(shí)不用再提交XSS代碼
常見場景一:黑客寫了一篇包含有惡意js的博客文章,文章發(fā)表后,所以訪問該博客文章的用戶,都會(huì)在他們的瀏覽器中執(zhí)行這段惡意代碼,從而遭到攻擊。
常見場景二:留言板XSS,用戶提交一條包含XSS代碼的留言存儲(chǔ)到數(shù)據(jù)庫,目標(biāo)用戶查看留言板時(shí),那些留言的內(nèi)容會(huì)從數(shù)據(jù)庫查詢出來并顯示,瀏覽器發(fā)現(xiàn)有XSS代碼,就當(dāng)做正常的HTML與Js解析執(zhí)行,于是觸發(fā)了XSS攻擊。
第三種類型:DOM Based XSS
通過修改頁面DOM節(jié)點(diǎn)形成的XSS,稱為DOM Based XSS。