如何使用 SafeHTML 而不是字符串设置 GWT UiBinder 元素的内部 HTML?

发布于 2024-12-02 07:36:17 字数 607 浏览 1 评论 0原文

我有由 UiBinder 创建的以下元素:

@UiField UListElement phones;

使用以下标记:

<ul ui:field="phones" class="contact section"></ul>

我之前一直使用方法 setInnerHtml(String) 来设置值。例如:

phones.setInnerHtml("<li><span class='title'>" + title + 
    "</span><div class='phone'><a href='tel:" + number + "'>" + 
    number + "</a></div></li>");

我现在想使用 SafeHtmlTemplates 来减少出现 XSS(跨站脚本)问题的可能性。使用 SafeHtmlTemplate,我现在取回 SafeHtml,我想将其粘贴到我的手机元素变量中。我该怎么做?我没有看到采用 SafeHtml 类型变量的方法。

I have the following element created by UiBinder:

@UiField UListElement phones;

With the following markup:

<ul ui:field="phones" class="contact section"></ul>

I had previously been using the method setInnerHtml(String) to set the value. For example:

phones.setInnerHtml("<li><span class='title'>" + title + 
    "</span><div class='phone'><a href='tel:" + number + "'>" + 
    number + "</a></div></li>");

I would now like to use SafeHtmlTemplates to reduce the possibility of having XSS (cross-site scripting) problems. Using a SafeHtmlTemplate, I now get back SafeHtml which I would like to stick into my phones element variable. How do I do this? I don't see a method that would take a SafeHtml type variable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自在安然 2024-12-09 07:36:17

要使用 SafeHtml,您必须坚持使用 GWT 小部件。更具体:

随着 com.google.gwt.safehtml 包的引入,所有采用被解释为 HTML 的字符串参数的核心 GWT 库小部件都已通过采用 SafeHtml 类型值的相应方法进行了扩充。特别是,所有实现 HasHTML(或 HasDirectionalHtml)接口的小部件也实现 HasSafeHtml(或 HasDirectionalSafeHtml)接口。

如果 Ui:Binder 应生成安全 html,则必须在模块 xml 中设置以下属性:

<set-configuration-property name="UiBinder.useSafeHtmlTemplates" value="true" />

To use SafeHtml you have to stick to GWTs widgets. More specific:

With the introduction of the com.google.gwt.safehtml package, all of the core GWT library's widgets that take String arguments that are interpreted as HTML have been augmented with corresponding methods that take a SafeHtml-typed value. In particular, all widgets that implement the HasHTML (or HasDirectionalHtml) interface also implement the HasSafeHtml (or HasDirectionalSafeHtml, respectively) interface.

If Ui:Binder should generate safe html you have to set the following property in your module xml:

<set-configuration-property name="UiBinder.useSafeHtmlTemplates" value="true" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文