输出转义是防御 XSS 的核心方法
将用户输入的特殊字符转换为 HTML 实体,使浏览器将其作为纯文本而非代码解析,从而防止脚本执行。
常见转义规则:
| 原字符 | 转义后 |
|---|---|
| < | < |
| > | > |
| " | " |
| ' | ' |
| & | & |
示例:
// 未转义(危险)
div.innerHTML = userInput; // <script>alert(1)</script> 会执行
// 转义后(安全)
div.textContent = userInput; // <script>alert(1)</script> 会作为纯文本显示现代前端框架(React、Vue)默认使用转义处理,只有使用 dangerouslySetInnerHTML、v-html 等危险 API 时才需要手动处理。