gpt4 book ai didi

coldfusion - esapi:对于 src 属性,我们应该使用 encodeForHTMLAttribute 吗?编码ForURL?或两者?

转载 作者:行者123 更新时间:2023-12-04 23:25:55 25 4
gpt4 key购买 nike

哪个是正确的?

<img src="#encodeForHTMLAttribute(FORM.path)#">

或者
<img src="#encodeForURL(FORM.path)#">

或者
<img src="#encodeForHTMLAttribute(encodeForURL(FORM.path))#">

?

最佳答案

使用与插入需要编码的文本的上下文相匹配的方法。

encodeForUrl 用于将动态文本放入 URL - 因此它将替换 /%2F ( and so on ),如果你将它应用到整个 URL,你将拥有一个编码的 URL(因此它在 src 属性中被破坏)。

如果您允许用户提供部分 URL,则需要拆分 / (和任何其他相关的分隔符),在每个部分应用 encodeForUrl,然后再次连接在一起。

注: encodeForUrl 似乎将其字符串直接传递给 Java,这意味着反斜杠被视为转义字符 - \b\n编码为 %08%0A而不是 %5Cb%5Cn - 此行为不是标准 URL 编码的一部分(通常也不是 CF 字符串)。为避免这种情况,请改用 UrlEncodedFormat 函数。

encodeForHTMLAttribute 用于将动态文本放入 HTML 属性中 - 其目的是确保将内容视为文本(而不是解析为 HTML) - 它不知道/关心其内容是 URL 还是其他内容。

总结 ,你可能想要 encodeForHtmlAttribute( UrlEncodedFormat( Form.Path ) )对于这种情况。

关于coldfusion - esapi:对于 src 属性,我们应该使用 encodeForHTMLAttribute 吗?编码ForURL?或两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12923662/

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