HTML转义

在线HTML实体转义和反转义工具

关于HTML转义

HTML转义工具把用户输入里的危险字符换成实体,避免它们被浏览器当成标签或属性解析。写留言板、评论框、富文本回显时,直接把内容拼进页面会带来 XSS 风险,而把 <、>、&、&quot;、' 分别转成 &lt;、&gt;、&amp;、&quot;、&#39; 之后,内容就会原样显示而不是被解析。本工具同时支持反向还原,粘贴实体文本即可解回原始字符,方便你核对数据。整个过程在浏览器本地计算,内容不上传服务器,断网也能用。

HTML转义怎么用

  1. 把带尖括号和引号的用户输入粘进左侧输入框,支持多行文本。
  2. 选择转义模式,工具会把尖括号、&、双引号、单引号依次替换成 HTML 实体。
  3. 输出框得到 HTML 实体文本,可直接贴进模板或接口参数中使用。
  4. 需要还原时粘贴实体文本,切到反转义模式,即可解回原始字符核对内容。
  5. 结果支持全选复制,多段内容建议逐段处理,避免实体与原文混在一起。

使用提示

  • 转义后仍要在服务端做一次校验,前端转义只解决显示层的解析问题。
  • 别把已转义过的文本再转一遍,&amp; 会变成 &amp;amp;,页面上会多出可见的实体字符。
  • 属性值用双引号包裹时至少要转掉双引号和 &,单引号包裹的场景同理。

HTML转义常见问题

转了 HTML 实体还会被 XSS 打穿吗?
实体转义只保证内容被当成文本显示,不解决别的注入面。如果这段内容还要进 URL、JavaScript 字符串或者数据库,各自需要对应的编码方式;属性值也一定要用引号包好。转义加引号是显示层的基础防护,服务端校验和内容策略仍然要一起做。
&amp; 这种双重转义是怎么来的?
对已经转义过的文本又执行了一次转义。原来的 & 变成 &amp;,再转一次就写成 &amp;amp;,页面上于是显示出可见的实体字符。处理前先确认数据当前处于哪个状态,转义只在输出到 HTML 前做一次,中间环节保持原样就好。
单引号和双引号都要转吗?
建议都转,不必纠结上下文。HTML 属性用双引号包裹时,必须处理双引号和 &;用单引号包裹时改处理单引号。两者都转成 &quot; 与 &#39; 最省心,不依赖包裹方式也不容易出错,代价只是输出文本稍长一点。
能处理整段网页源码吗?
可以粘贴多行文本,工具按字符逐个替换,不依赖标签结构。但整页源码里本来就有大量实体,再转一次会产生双重转义,所以更适合处理待插入模板的片段或表单提交内容。需要还原时用反转义模式解回原始字符再核对。