Java 使用UiBinder时是否需要GWT安全HTML?

Java 使用UiBinder时是否需要GWT安全HTML?,java,html,gwt,xss,Java,Html,Gwt,Xss,假设您有以下MyPanel.ui.xml: <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:gwt="urn:import:com.google.gwt.user.client.ui"> <div> <span

假设您有以下
MyPanel.ui.xml

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:gwt="urn:import:com.google.gwt.user.client.ui">
    <div>
        <span id="content">Some content</span>

        <gwt:RadioButton ...>
            ...
        </gwt:RadioButton>

        <!-- etc. -->
    </div>
</ui:UiBinder>
那么,是否存在您希望/需要使用SafeHtml或SafeHtmlBuilder的任何用例,或者只有在处理
HTML
对象及其底层DOM结构时才需要“Safe*”API


如果有UiBinder支持的复合材料需要使用Safe*的用例,也许一个简单的代码示例可以帮助我连接这些点。提前谢谢

一个简单的示例,您应该将SafeHTML与UiBinder结合使用:


公共类MyPanel扩展了复合{
私有HTML-myHtml;
// ...
}
这里您应该使用
myHtml.setHTML(SafeHTML)
[*]。原因是,这是示例中唯一可能出现用户提供内容的地方。用户内容不能出现在UiBinder模板本身中(因为这是静态的:在编译时修复)

因此,是否需要SafeHTML的区别,相当于信任用户提供的内容与信任开发者提供的内容之间的区别


[*]在您自己的示例中,您应该使用RadioButton的一个安全HTML构造函数

谢谢@Chris Lercher(+1)-我想这已经开始变得更有意义了。我想这是我困惑的根源:为什么
htmlmyhtml
被认为是“用户提供的内容”,而不是一个单选按钮?这不都是一天结束时的HTML吗?我想,如果您能帮助我理解用户提供的内容和开发人员提供的内容之间的区别,我将知道如何确定哪些用例适合使用SafeHtml。再次感谢@orionTurtle:RadioButton和HTML小部件之间没有基本区别,但我尽量简化了示例(因为RadioButton有许多构造函数等)。为什么它被视为用户提供的内容?事实并非如此。但这是唯一一个可能出现用户提供内容的地方。
public class MyPanel extends Composite {
    private RadioButton radioButton;
    // ...
}