Javascript 中的 \' 和 \x27 有什么区别吗?



我正在阅读owasp-java-encoder的文档,它说forJavaScriptBlock执行与forJavaScript相同的编码,除了"和"分别编码为\"和"。我不明白为什么'在forJavaScript中被编码为\x27,但在forJavaScriptBlock中被编码为\'。\' 和 \x27 有什么区别?

forJavaScript的文档说:

JavaScript 字符串的编码。它可以安全地用于HTML 脚本属性(例如 onclick)、脚本块、JSON 文件和 JavaScript 源代码。

由于 HTML 属性可以用'字符分隔,因此内容不能包含任何'字符。它们必须以不同的方式表示。

另一方面,forJavaScriptSource说:

此方法对 HTML 中包含的 JavaScript 字符串进行编码 脚本块。在脚本属性中使用是不安全的(例如 点击)。来电者必须提供周围的报价 字符。此方法执行与 forJavaScript(String),除了"'被编码为 分别"'

除非您有兴趣保存几个字节的输出或 在此库之上编写框架,建议 使用 for JavaScript(String) 而不是此方法。

相关内容

  • 没有找到相关文章

最新更新