一. XSS攻擊簡(jiǎn)介
xss(Cross Site Scripting),即跨站腳本攻擊,是一種常見于web應(yīng)用程序中的計(jì)算機(jī)安全漏洞。指的是在用戶瀏覽器上,在渲染DOM樹的時(shí)候,執(zhí)行了不可預(yù)期的JS腳本,從而發(fā)生了安全問題。
XSS就是通過在用戶端注入惡意的可運(yùn)行腳本,若服務(wù)端對(duì)用戶的輸入不進(jìn)行處理,直接將用戶的輸入輸出到瀏覽器,然后瀏覽器將會(huì)執(zhí)行用戶注入的腳本。 所以XSS攻擊的核心就是瀏覽器渲染DOM的時(shí)候?qū)⑽谋拘畔⒔馕龀蒍S腳本從而引發(fā)JS腳本注入,那么XSS攻擊的防御手段就是基于瀏覽器渲染這一步去做防御。只要我們使用HTML編碼將瀏覽器需要渲染的信息編碼后,瀏覽器在渲染DOM元素的時(shí)候,會(huì)自動(dòng)解碼需要渲染的信息,將上述信息解析成字符串而不是JS腳本,這就是我們防御XSS攻擊的核心想法。
二. 預(yù)防措施
1. 獲取用戶的輸入,不用innerHtml,用innerText;
2. 對(duì)用戶的輸入進(jìn)行過濾,如對(duì)& < > " ' /等進(jìn)行轉(zhuǎn)義。