GUIDE深度 · Deep dive
HTML 转义和 XSS
XSS 的核心是把用户输入当 HTML/JS 执行。输出到 HTML 文本、属性、URL、JS 上下文时,转义规则不同;最稳妥是用框架的自动转义,别手拼 HTML。
按上下文转义
HTML 文本:& < >;属性:还要转引号。
URL 参数:百分号编码;JS 字符串:JSON 编码/转义。
不要只做一次
先转义再拼接可能被二次解码;在最终输出上下文转义。
富文本要用白名单 sanitizer,不是简单实体编码。
常见问题
实体编码能防 SQL 注入吗?
不能;SQL 要用参数化查询。
前端转义够吗?
不够;服务端也要按上下文处理。