设置
语言设置
主题设置
HTML 转义/反转义
用于安全展示文本的 HTML 实体转义/反转义工具,帮助降低 XSS 风险
🚀 快速开始
- 在文本框输入内容(HTML 或已转义文本)
- 选择“编码”或“解码”模式
- 点击对应按钮开始转换,结果显示在同一文本框
- 点击“复制”,用于代码或展示
📌 常见使用场景
- 用户评论:转义用户提交的评论内容,防止 XSS 攻击
- 博客文章:在文章中显示 HTML 代码示例
- 论坛帖子:安全显示用户发布的内容
- 聊天消息:防止恶意代码通过聊天功能传播
- 表单数据:处理和显示表单提交的数据
- 代码展示:在网页中展示 HTML/JavaScript 代码片段
🎛️ 转义规则与实体
- 哪些字符通常需要转义:< > & " '(斜杠 / 一般不必;视上下文而定)
- 怎么写:< → <,> → >,& → &," → ",' → '
- 属性里的引号:用 "(或 ")表示双引号
- 展示标签原样:想显示 <script> 文本,请写成 <script>
- 标签处理:把 <div> 写成 <div>,避免被浏览器解析
🧭 使用建议
- 上下文转义:根据输出位置选择合适的转义策略
- 服务端处理:关键安全转义应在服务端进行
- 双重检查:转义后检查输出,确保没有遗漏
- 使用库:生产环境建议使用成熟的转义库而非手动处理
- 预览检查:转义后可以在浏览器控制台预览实际显示效果
⚠️ 限制与兼容性
- 本工具不是 Sanitizer:不会移除脚本/事件/危险协议,需配合内容净化(白名单清洗)使用
- 不完全防护:仅转义不能防止所有 XSS,需配合其他安全措施
- 上下文依赖:不同位置需要不同的转义策略(HTML 内容、属性、JavaScript、CSS)
- 大量文本:可能导致浏览器失去响应或崩溃,建议分段处理
🔒 隐私与安全
- 所有处理均在您的浏览器内完成,数据不会离开您的设备
❓ 常见问题
什么是 XSS 攻击?
XSS(跨站脚本攻击)是攻击者通过注入恶意脚本到网页中,窃取用户信息或执行恶意操作。HTML 转义是防御 XSS 的基本手段
什么时候需要 HTML 转义?
显示任何用户输入的内容时都需要转义,包括评论、留言、表单数据等。只要内容可能包含 HTML 标签就需要转义
&lt; 和 &#60; 有什么区别?
两者都表示 <(小于号)。&lt; 为命名实体(lt=less‑than),&#60;/&#x3C; 为数字/十六进制实体。在现代 HTML 中效果相同:需要可读性时用 &lt;;在不支持命名实体或需表示任意字符/跨标记语言时用 &#60;/&#x3C;。实体末尾的分号要保留(如 &lt;);缺少分号可能与后续字符黏连被错误解析,例如“&notin”会被当成“&not;”+“in”显示为“¬in”
转义能防止所有 JavaScript 注入吗?
不能。HTML 转义只在 HTML 上下文有效。在 JavaScript、CSS、URL 等上下文中需要不同的转义方法
为什么有时会看到 &amp;lt; 这样的双重转义?
这是因为内容被转义了两次。第一次 < 变成 &lt;,第二次 & 又被转义成 &amp;,结果变成 &amp;lt;。应避免重复转义
如何允许部分安全的 HTML 标签?
应使用“净化(Sanitization)”而不是仅转义:基于允许列表保留安全标签/属性并过滤协议。建议仅保留 p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3 等;a 仅允许 href/title/target(协议限 http/https/mailto/tel),img 仅 src/alt;删除 style 与所有 on* 事件。推荐使用 DOMPurify/sanitize‑html 等库,尽量在服务端净化后再渲染;切勿把未净化内容放入 innerHTML/dangerouslySetInnerHTML,纯文本用 textContent