跨站脚本攻击(Cross-Site Scripting, XSS)的本质是攻击者成功绕过了同源策略(Same-Origin Policy),将恶意的可执行脚本注入并持久化或反射到受害者的浏览器执行环境中,进而窃取敏感 Cookie、劫持会话或篡改页面 DOM。XSS 分为三大变种:存储型 XSS:恶意代码被保存至服务端数据库(如论坛帖子),所有访问用户皆中招。反射型 XSS:恶意脚本夹带在 URL 参数中,经服务端原封不动回显给用户。DOM-based XSS:漏洞完全存在于前端 JavaScript,由非法输入经过 innerHTML、eval、document.write 等危险 Sink 点触发。现代防御工程绝不能仅仅寄希望于“字符串黑名单替换”。构建纵深防御体系必须涵盖:上下文感知转义(Context-aware Output Encoding):根据数据渲染的上下文(HTML Body、HTML Attribute、JavaScript 变量环境)使用不同的编码策略。安全 Cookie 标记:为鉴权凭证挂载 HttpOnly 标识,禁止任何 JavaScript 脚本通过 document.cookie 读取令牌。内容安全策略(Content Security Policy, CSP):通过 HTTP 响应头强力约束资源加载行为:HTTPContent-Security-Policy: default-src 'self'; script-src 'self' [https://trusted.cdn.com]
(https://trusted.cdn.com) 'nonce-EDNnf03nceI1nnq'; object-src 'none'; CSP 通过禁用 unsafe-inline、限制脚本来源域并基于随机 Nonce 或哈希校验,即使页面存在代码注入漏洞,浏览器内核亦会直接阻断恶意脚本的执行。