跨站腳本攻擊(Cross Site Scripting)叫编,為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆商佛,故將跨站腳本攻擊縮寫為XSS凸主。惡意攻擊者往Web頁(yè)面里插入惡意Script代碼恍飘,當(dāng)用戶瀏覽該頁(yè)之時(shí)绢彤,嵌入其中Web里面的Script代碼會(huì)被執(zhí)行烟很,從而達(dá)到惡意攻擊用戶的目的颈墅。
我們只要將各種html中的敏感字符進(jìn)行轉(zhuǎn)義顯示即可完成簡(jiǎn)單的xss攻擊防御, 就是一個(gè)encode過程:
function encodeHtml(html){return html && html.replace ?
(
html.replace(/&/g, "&") //轉(zhuǎn)換&符號(hào)
.replace(/ /g, " ") // 轉(zhuǎn)換空格
.replace(/\b +/g, " ") // 轉(zhuǎn)換多個(gè)空格為單個(gè)空格
.replace(/</g, "<") // 轉(zhuǎn)換小于符號(hào)
.replace(/>/g, ">") // 轉(zhuǎn)換大于符號(hào)
.replace(/\\/g, "\") // 轉(zhuǎn)換斜杠符號(hào)
.replace(/\'/g, "'") // 轉(zhuǎn)換單引號(hào)
.replace(/\"/g, """) // 轉(zhuǎn)換雙引號(hào)
.replace(/\n/g, "<br/>") // 轉(zhuǎn)換換行符號(hào)
.replace(/\r/g, "") //轉(zhuǎn)換回車符號(hào)
)
: html;}