最简单的查看方式SafeHtml
是String
任何 HTML 标记已被适当转义的位置。这可以防止跨站点脚本 (XSS) 攻击,因为它可以确保,例如,如果有人在表单中输入他们的姓名,因为<SCRIPT>alert('Fail')</SCRIPT>
这是在呈现您的页面时显示的文本,而不是正在运行的 JavaScript。
所以不要有类似的东西:
String name = getValueOfName();
HTML widget = new HTML(name);
你应该使用:
String name = getValueOfName();
HTML widget = new HTML(SafeHtmlUtils.fromString(name));
SafeHtmlBuilder
就像一个StringBuilder
除了它会自动转义您添加的字符串中的 HTML 标记。所以扩展上面的例子:
String name = getValueOfName();
SafeHtmlBuilder shb = new SafeHtmlBuilder();
shb.appendEscaped("Name: ").appendEscaped(name);
HTML widget = new HTML(shb.toSafeHtml());
这是GWT 文档中的一个很好的指南SafeHtml
,值得一读。