处理方式
在文本上下文中编码可以避免文本被当作标记解析,但不是完整的 XSS 防护;应用中应使用符合上下文的转义。
将 &、<、>、" 和单引号替换为 HTML 实体。
调试场景
编码一个包含 &、尖括号和引号的不可信显示字符串,然后只把结果放入 HTML 文本节点测试。对于属性、URL、JavaScript、CSS 或允许的富文本,应使用针对准确上下文的框架编码器或清理器。
如何解读结果
编码会替换少量字符,避免文本在基本文本上下文中被解析成标记。解码常见实体会重新产生标记字符。两种操作都不能判断哪些元素、属性、协议或脚本行为安全。
输入字段参考
- 模式
- 示例默认值: 编码
- 输入
- 示例默认值: 已提供示例输入
常见错误
- 把密钥、凭据、客户记录或其他生产数据粘贴到浏览器工具或可分享 URL。
- 把文本节点转义当作属性、URL、脚本、样式或富 HTML 的完整清理器。
- 把便捷预览当成目标运行时、解析器、数据库或安全控制的验证结果。
使用结果前的检查清单
- 把输入缩减为仍可复现问题的模拟示例。
- 在允许标记时使用框架的上下文感知转义和白名单清理器。
- 发布前把确认后的输入和预期输出加入项目回归测试。
用于生产前需要确认的问题
编码等于清理 HTML 吗?
不等于。它只针对文本上下文转义,不会删除不安全 HTML 或脚本。
输入会发送到服务器吗?
不会。处理在浏览器中完成。
独立开发者工具,生产使用前请检查输出。