當頁面的內容可以允許使用者輸入,例如:線上筆記軟體, 聊天對話框,如果沒有適當的檢核直接進行儲存,甚至進行執行,就有可能有XSS的疑慮。
/* 正常下 */
const q = 'hello' // 從網址列拿下來的參數
document.querySelector('.search').innerHTML = q // 將參數傳輸到用戶頁面
/* XSS */
const q = <script>alert(1)</script> // 從網址列拿下來的參數
document.querySelector('.search').innerHTML = q // 將參數傳輸到用戶頁面****
以上的程式碼中,如果伺服器沒有使用一些過濾內容的措施,惡意的程式碼就有可能被嵌入到網站。
Reference: