繁体   English   中英

在AEM 6中,HTL中的含量改变/很明显

[英]Content altered in HTL/ Sightly in AEM 6

这是我长期以来遇到过的最奇怪的问题。 我有一个在多字段内创建的URL。 URL有一个下划线,例如。 http://example.net/_pinkPanther_is_pink它目前位于$ {item.link}内

当我<a href="${item.link}">Click</a> <br> ${item.link}并检查时,它呈现为

    <a href="http://example.net/__pinkPanther_is_pink">Click</a>

 <br> http://example.net/_pinkPanther_is_pink

如果你注意到两个值都来自同一个变量,当链接在锚标记的href中使用时,有一个双下划线由上帝知道谁在example.net/之后

有没有人知道到底发生了什么?

这是由显示上下文感知XSS保护引起的。 Sightly / HTL自动检测HTL表达式的显示上下文,使用其在HTML页面结构中的位置来检测它。

例如,如果表达式出现在一旦产生文本的位置,那么它就会被称为text上下文。 如果在属性的值内找到它,则说它在attribute上下文中,依此类推。 有关htl规范页面中的上下文的更多信息。

在您的示例中, href属性中的隐式上下文是uri而在后一种情况下是text

为了覆盖此行为,您可以显式设置上下文,如href="${item.link @ context='text'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM