当页面的内容可以允许使用者输入,例如:线上笔记软体, 聊天对话框,如果没有适当的检核直接进行储存,甚至进行执行,就有可能有XSS的疑虑。
/* 正常下 */const q = 'hello' // 从网址列拿下来的参数document.querySelector('.search').innerHTML = q // 将参数传输到用户页面/* XSS */const q = <script>alert(1)</script> // 从网址列拿下来的参数document.querySelector('.search').innerHTML = q // 将参数传输到用户页面****
以上的程式码中,如果伺服器没有使用一些过滤内容的措施,恶意的程式码就有可能被嵌入到网站。
Reference:
浅谈 XSS 攻击与防御的各个环节Top 500 Most Important XSS Script Cheat Sheet for Web Application Penetration Testing零基础资安系列(二)-认识 XSS(Cross-Site Scripting)