HTML Entities
HTML 实体是将 HTML 中有特殊含义的字符(<、>、&、")转义为 &name; 或 &#NNN; 形式,以字面量显示而非被解析为标记。
用途
防止用户输入或动态内容被浏览器当作 HTML 标签执行,是防御 XSS 的基础手段。
机制
命名实体如 < > & " ' 对应 5 个 XML 预定义字符。数字实体 &#NNN; 用十进制码点,&#xNNN; 用十六进制。解码时按 DTD 实体表展开。
用例
- 在 HTML 文本中显示 < > & 等字符
- 防御 XSS 的输出转义
- HTML 邮件中的特殊符号
- XML 内容转义
示例
- 输入
<script>输出<script>After escaping, the browser shows text instead of executing a script
常见错误
- Escaping only < and > while missing quotes, enabling XSS in attribute contexts
- Escape by context: text needs < > &; attributes additionally need " and '