gpt4 book ai didi

html - 将带有 HTML 代码的字符串注入(inject)并解释为 JSF 页面的组件

转载 作者:技术小花猫 更新时间:2023-10-29 12:30:14 25 4
gpt4 key购买 nike

我将 PrimeFaces 与 JSF 2.0 结合使用来构建一个应用程序。我正在使用 PrimeFaces <p:editor>使用户能够创建富文本的组件。但是该组件的输出是 HTML 源代码,如下所示:

String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>";

当我在 <h:outputText> 中显示它时如下:

<h:outputText value="#{bean.text}" />

然后它将 HTML 代码显示为纯文本:

<p>This text <i>contains</i> some <b>HTML</b> code.</p>

是否有任何组件可以解释 HTML 源代码,例如<i>实际上显示为斜体和 <b>大胆?

This text contains some HTML code.

最佳答案

默认情况下,JSF 从支持 bean 属性中转义 HTML,以防止 XSS 攻击漏洞。要禁用它,只需设置 escape <h:outputText> 的属性至 false .

<h:outputText ... escape="false" />

这样 HTML 就不会被转义,因此会被网络浏览器解释。


与具体问题无关,请注意 XSS 攻击,因为您在这里基本上是重新显示未转义的用户控制输入。您可能需要事先对其进行 sanitizer 。

关于html - 将带有 HTML 代码的字符串注入(inject)并解释为 JSF 页面的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662851/

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