跨站脚本攻击 XSS
约 359 字大约 1 分钟
2026-02-26
跨站脚本攻击 XSS(Cross-Site Scripting)本质是:攻击者让浏览器执行了 "本不该执行" 的脚本
重要
一旦注入脚本运行,常见后果有:
- 读取或间接滥用用户身份信息
- 监听输入行为(键盘记录、表单劫持)
- 篡改页面 DOM(伪造登录框、钓鱼按钮)
三型形态
1. 存储型 XSS
恶意脚本被写入数据库,后续页面渲染时 "稳定触发"

2. 反射型 XSS
恶意载荷在请求参数中,服务端直接拼回页面,通常通过诱导链接触发

3. DOM 型 XSS
不一定经过服务端,前端直接把不可信数据写入危险 DOM 接口(如 innerHTML)导致执行
防护基线
输入处理
来自前端输入的任何数据,默认都不可信,必须经过检验与转码
function escapeHtml(text) {
return text
.replaceAll('&', '&')
.replaceAll('<', '<')
.replaceAll('>', '>')
.replaceAll('"', '"')
.replaceAll("'", ''')
}开启 CSP
通过 CSP(Content-Security-Policy) 限制脚本来源和执行方式,减少注入脚本可执行面
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-<random>'Cookie 加 HttpOnly
即使发生 XSS,也能减少脚本直接读取 Cookie 的风险

