XSS 是指恶意攻击者利用网站没有对用户提交数据进行安全处理的缺陷
在 web 页面或相关资源中嵌入了恶意代码
使别的用户访问都会执行相应的嵌入代码。
攻击者通过 XSS 攻击,
能在用户的浏览器上伪装成用户做很多可怕的事情
比如这里通过 XSS
获取了 localStorage 里的信息
没有充分控制不可信数据在页面中的展现
<script>...绝对不要将不可信数据放在这...</script> 直接放置在script内 <!--...绝对不要将不可信数据放在这....--> 放在HTML注释内 <div ...绝对不要将不可信数据放在这...=test /> 放在属性名 <绝对不要将不可信数据放在这... href="/test" /> 放在标签名内 <style>...绝对不要将不可信数据放在这...</style> 直接放在CSS中
var id = this.$route.query.id document.write(` <div> 产品ID: ${id} </div> `)
来自用户输入的数据,都是不可信数据
axios(...) .then({ data } => { el.innnerHTML = data.userComment })
<body>...将不可信数据放在这前进行转义...</body> <div>...将不可信数据放在这前进行转义...</div> <div attr=...将不可信数据放在这前进行转义...>content</div> 在无引号属性间 <div attr='... 将不可信数据放在这前进行转义...'>content</div> 在单引号属性间 <div attr="...将不可信数据放在这前进行转义...">content</div> 在双引号属性间 <script>alert('... 将不可信数据放在这前进行转义...')</script> 在被引号包含的字符串 <script>x='... 将不可信数据放在这前进行转义...'</script> 被引号包含的表达式
By Awe
XSS Cross-Site Scripting Attack Analysis and Defense