我在TypoScript中制作了一个菜单,我用自己的文本覆盖标准标题:
lib.menu = HMENU
lib.menu.special = list
lib.menu.special.value = 3304, 7753
lib.menu {
1 = TMENU
1 {
wrap = <ul class="menu">|</ul>
NO {
allWrap = <li>|</li>
stdWrap.wrap = |
ATagBeforeWrap = 1
stdWrap.htmlSpecialChars = 1
stdWrap.override = some text <br /> some text! || some text <br /> some text!
}
}
}
但是在输出中,我将带有HTML标记的菜单作为文本:
- some text <br /> some text!
- some text <br /> some text!
如何将HTML标记解析为HTML?
答案 0 :(得分:1)
问题在于这一行:
stdWrap.htmlSpecialChars = 1
它通过用实体替换HTML特殊字符来转义stdWrap的输入(在这种情况下是覆盖的结果)。
如果输入是用户提供的或者是用户提供的部分,则应该使用它,以防止用户破坏前端的HTML输出或引入XSS漏洞。如果内容是硬编码文本,您可以放心地将其删除。
否则,您应该只转义用户输入,然后再添加HTML,例如使用stdWrap.override.htmlSpecialChars = 1
。