Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在保留HTML标记(Javascript/NodeJ)的同时清理字符并将其转换为HTML实体?_Javascript_Node.js - Fatal编程技术网

如何在保留HTML标记(Javascript/NodeJ)的同时清理字符并将其转换为HTML实体?

如何在保留HTML标记(Javascript/NodeJ)的同时清理字符并将其转换为HTML实体?,javascript,node.js,Javascript,Node.js,我希望接受来自WYSIWYG编辑器的丰富输入,但是,我希望在保留HTML标记的同时将所有特殊字符转换为HTML实体 我想输出与输入相同的富文本。但是,如果有人将字符作为其文本的一部分,该怎么办?我不想把它误认为是开始或结束的HTML标记。您只需转义有效的HTML字符,以便它们将被解释为普通文本而不是HTML 严格地说,转义有效HTML只意味着用相应的数字字符引用(#0000;)替换有效字符 有很多库专门执行这个转义和清理过程,您应该选择一个最适合您的语言、用例和框架的库 作为参考,来自: &a

我希望接受来自WYSIWYG编辑器的丰富输入,但是,我希望在保留HTML标记的同时将所有特殊字符转换为HTML实体


我想输出与输入相同的富文本。但是,如果有人将<或>字符作为其文本的一部分,该怎么办?我不想把它误认为是开始或结束的HTML标记。

您只需转义有效的HTML字符,以便它们将被解释为普通文本而不是HTML

严格地说,转义有效HTML只意味着用相应的数字字符引用(#0000;)替换有效字符

有很多库专门执行这个转义和清理过程,您应该选择一个最适合您的语言、用例和框架的库

作为参考,来自:

  • &→ & (安培,U+0026)
  • → < (小于符号,U+003C)
  • → > (大于符号U+003E)
  • → " (引号U+0022)
  • &apos;
    → ' (撇号U+0027)

您只需转义有效的html字符,以便将它们解释为普通文本而不是html

严格地说,转义有效HTML只意味着用相应的数字字符引用(#0000;)替换有效字符

有很多库专门执行这个转义和清理过程,您应该选择一个最适合您的语言、用例和框架的库

作为参考,来自:

  • &;
    → & (安培,U+0026)
  • → < (小于符号,U+003C)
  • → > (大于符号U+003E)
  • → “(引号U+0022)
  • &apos;
    → ' (撇号U+0027)

如果您不关心稍后呈现用户提交的html的客户端影响,或者服务器端影响,或者代码可能会在服务器端执行,那么我猜您可以简单地对内容进行清理、验证和转义,然后base64对其进行批发编码,服务器端

老实说,这是一个很好的理由,利用降价

要清楚,您要确保考虑客户端和服务器端的消毒/验证/逃逸问题。

这将稍微深入一点,并解释两种类型的XS:

在反射的XSS攻击中,攻击发生在请求本身 (通常是URL)并且当服务器 在响应中逐字插入攻击,或错误地转义,或 已消毒。受害者通过浏览恶意网站触发攻击 攻击者创建的URL

在存储的XSS攻击中,攻击者将攻击存储在 应用程序(例如,在代码片段中)和受害者通过以下方式触发攻击: 浏览到服务器上呈现攻击的页面,而不是 正确转义或清理存储的数据

在消毒、输入验证和逃逸的过程和重要性方面做得不错

额外资源: 客户端:

  • 结帐开始
  • 用于XSS预防
服务器端:

  • 如果要将此内容存储在文件系统上,在文件系统中它“可能”包含
    必需
    ,则需要确保以不可执行的形式存储
  • 存储在数据库中,经过base64编码后,就可以工作了

如果您不关心稍后呈现用户提交的html的客户端影响,或者服务器端影响,或者代码可能会在服务器端执行,那么我猜您可以简单地对内容进行清理、验证和转义,然后base64对其进行批发编码,服务器端

老实说,这是一个很好的理由,利用降价

要清楚,您要确保考虑客户端和服务器端的消毒/验证/逃逸问题。

这将稍微深入一点,并解释两种类型的XS:

在反射的XSS攻击中,攻击发生在请求本身 (通常是URL)并且当服务器 在响应中逐字插入攻击,或错误地转义,或 已消毒。受害者通过浏览恶意网站触发攻击 攻击者创建的URL

在存储的XSS攻击中,攻击者将攻击存储在 应用程序(例如,在代码片段中)和受害者通过以下方式触发攻击: 浏览到服务器上呈现攻击的页面,而不是 正确转义或清理存储的数据

在消毒、输入验证和逃逸的过程和重要性方面做得不错

额外资源: 客户端:

  • 结帐开始
  • 用于XSS预防
服务器端:

  • 如果要将此内容存储在文件系统上,在文件系统中它“可能”包含
    必需
    ,则需要确保以不可执行的形式存储
  • 存储在数据库中,经过base64编码后,就可以工作了

为什么你认为,所见即所得编辑器不会处理这些问题?@Thomas我希望在后端处理这些问题,而不是仅仅依靠前端的所见即所得。我不确定我是否遵循,html标记正是你想要转换为html实体的东西……除非你说你想清除样式和纸条t标记…如果你源标记,有一个包装容器,你可以提取它的子项并对它们进行清理…只需添加,你为什么认为所见即所得编辑器不会处理这些?Thomas我希望在后端处理这些,而不是只依赖前端的所见即所得。我不确定我是否会遵循,h