概念:
XSS(Cross Site Scripting),即跨站腳本攻擊,是一種常見於web應用程序中的計算機安全漏洞.XSS通過在用戶端注入惡意的可運行腳本,若服務器端對用戶輸入不進行處理,直接將用戶輸入輸出到瀏覽器,然后瀏覽器將會執行用戶注入的腳本。
舉例:
有一個input輸入框,需要用戶輸入名字,用戶卻輸入一個惡意腳本,<script>alert(document.cookie)</script>,
或者用戶輸入一個HTML,在標簽中嵌入惡意腳本,如src,href,css style等。如:<IMG SRC="javascript:alert('XSS');">;
<BODY BACKGROUND="javascript:alert('XSS')">
防御:(好多種情況,這里只說最簡單的)
其惡意腳本都是來自用戶的輸入。因此,可以使用過濾用戶輸入的方法對惡意腳本進行過濾。
1、獲取用戶輸入,不用.innerHTML,用innerText。
2、對用戶輸入進行過濾,如 HTMLEncode 函數實現應該至少進行 & < > " ' / 等符號轉義成 & < > " ' /;