gpt4 book ai didi

html - HTML中哪些字符需要转义?

转载 作者:IT老高 更新时间:2023-10-28 11:04:09 29 4
gpt4 key购买 nike

它们是否与 XML 相同,可能加上空格一 ( )?

我发现了一些巨大的 HTML 转义字符列表,但我认为它们必须被转义。我想知道需要逃避什么。

最佳答案

如果您将文本内容插入文档中需要文本内容的位置1you typically only need to escape the same characters as you would in XML .在元素内部,这仅包括实体转义 & 符号 &和元素分隔符小于和大于符号< > :

& becomes &amp;
< becomes &lt;
> becomes &gt;

在属性值内部,您还必须转义您正在使用的引号字符:

" becomes &quot;
' becomes &#39;

在某些情况下,跳过转义其中一些字符可能是安全的,但我鼓励您在所有情况下都转义所有五个字符,以减少出错的机会。

如果您的文档编码不支持您正在使用的所有字符,例如,如果您尝试在 ASCII 编码的文档中使用表情符号,您还需要转义这些字符。如今,大多数文档都使用完全支持 Unicode 的 UTF-8 编码进行编码,而这不是必需的。

一般情况下,您不应将空格转义为 &nbsp; . &nbsp;不是普通空格,而是 non-breaking space .您可以使用这些而不是普通空格来防止在两个单词之间插入换行符,或者插入额外的        空格       而不自动折叠,但这通常很少见。除非您有需要它的设计约束,否则不要这样做。


1 “预期文本内容的位置”是指应用正常解析规则的元素或引用属性值内部。例如:<p>HERE</p><p title="HERE">...</p> .我上面写的不适用于具有特殊解析规则或含义的内容,例如在脚本或样式标签内部,或作为元素或属性名称。例如:<NOT-HERE>...</NOT-HERE> , <script>NOT-HERE</script> , <style>NOT-HERE</style> , 或 <p NOT-HERE="...">...</p> .

在这些情况下,规则更加复杂,并且更容易引入安全漏洞。 我强烈建议您不要在任何这些位置插入动态内容。我看到有能力的安全意识开发人员团队通过假设他们已正确编码这些值但缺少边缘情况来引入漏洞。通常有更安全的替代方法,例如将动态值放入属性中,然后使用 JavaScript 处理它。

如果必须,请阅读 the Open Web Application Security Project's XSS Prevention Rules以帮助了解您需要牢记的一些问题。

关于html - HTML中哪些字符需要转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381974/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com