暂无最近使用记录
暂无收藏工具

HTML转义 - 实体编码解码

转换HTML特殊字符,防止XSS攻击

HTML转义知识

什么是HTML转义?
将HTML特殊字符(如< > &)转换为实体编码,避免被浏览器解析为HTML标签。
防止XSS攻击
对用户输入进行HTML转义是防止跨站脚本攻击(XSS)的重要手段。
显示代码示例
在网页中展示HTML代码时,需要转义才能正确显示而不被执行。
数据存储
将用户输入存入数据库前进行转义,输出时再反转义,确保数据安全。
实体名称与编号
HTML实体有两种形式:命名实体(如&lt;)和数字实体(如&#60;),效果相同。
必须转义的字符
HTML中必须转义的5个字符:< > & " ',它们在HTML中有特殊含义。

常见问题

Q 什么是XSS攻击?HTML转义如何防护?
A XSS(跨站脚本攻击)是攻击者在网页中注入恶意脚本,窃取用户数据或执行恶意操作。对用户输入的内容进行HTML转义,可以防止<script>等标签被执行。
Q 应该在存储时转义还是显示时转义?
A 推荐在显示时转义(输出编码)。存储原始数据便于搜索和其他用途。如果在存储时转义,数据可能需要多次转义导致混乱,而且不同输出场景(HTML、JSON、URL)需要不同的编码方式。
Q &nbsp;和普通空格有什么区别?
A &nbsp;是不间断空格(No-Break Space),不会被浏览器合并,也不会在此处换行。普通空格连续多个会被合并为一个。需要保留多个空格或防止自动换行时使用&nbsp;。
Q 单引号在HTML中必须转义吗?
A 取决于上下文。在HTML属性值中,如果属性值用单引号包裹,则单引号必须转义。建议统一转义单引号和双引号('→&#39; "→&quot;),确保在任何上下文都安全。
Q 为什么有些框架自动转义HTML?
A 现代前端框架(React、Vue、Angular)默认对插值内容进行HTML转义,防止XSS攻击。如需插入HTML,需要使用特殊方法(如v-html、dangerouslySetInnerHTML),且需确保内容安全。
Q JSON中需要HTML转义吗?
A JSON本身不需要HTML转义,它有自己的转义规则(如双引号用\")。但如果JSON数据最终要嵌入HTML页面,或者内容会被渲染为HTML,则仍需要进行HTML转义。

HTML实体对照表

字符实体名称实体编号说明
<&lt;&#60;小于号,HTML标签起始符
>&gt;&#62;大于号,HTML标签结束符
&&amp;&#38;和号,实体引用起始符
"&quot;&#34;双引号,属性值界定符
'&apos;&#39;单引号,属性值界定符
 &nbsp;&#160;不间断空格
©&copy;&#169;版权符号
®&reg;&#174;注册商标符号

相关工具