加载中...
跨站脚本攻击(XSS)是攻击者将恶意脚本注入页面并在受害者浏览器执行的安全漏洞,防御核心是输出转义、内容安全策略(CSP)和严格的 DOM 操作规范,是前端安全的头号议题。

| 三种类型 | 反射型 / 存储型 / DOM 型 |
| 常用防御库 | DOMPurify(富文本白名单过滤) |
| 深度防御头 | Content-Security-Policy / X-XSS-Protection |
反射型 XSS:恶意脚本在 URL 参数中,服务端直接拼入 HTML 响应,诱导用户点击特制链接触发。存储型 XSS:恶意脚本存入数据库(如评论内容),所有浏览该页面的用户都受害,危害最大。DOM 型 XSS:前端 JS 读取不可信数据后直接写入 DOM(innerHTML、document.write、eval),不经过服务端,传统服务端过滤无效。三类的共同点是:攻击者控制的内容被浏览器当作可执行代码运行。[1]
输出转义是第一道防线:将 &、<、>、"、' 等字符替换为 HTML 实体;富文本场景需用 DOMPurify 这类专业白名单过滤库而非手写正则。Content Security Policy(CSP) 通过 Content-Security-Policy 响应头限制页面可加载的脚本来源(如 script-src 'self'),即使注入成功也无法执行外部脚本,是深度防御的关键层。HttpOnly Cookie 防止 JS 读取 Session Cookie,阻断 XSS 的常见目标——会话劫持。现代框架(React、Vue)的模板默认转义插值,直接用 innerHTML/v-html 时需格外谨慎。

| 三种类型 | 反射型 / 存储型 / DOM 型 |
| 常用防御库 | DOMPurify(富文本白名单过滤) |
| 深度防御头 | Content-Security-Policy / X-XSS-Protection |
登录 后参与讨论
暂无讨论,来发表第一条评论吧