我需要向Window.setTitle()发送一个SafeHtml。 问题是我在标题上使用SafeHtmlUtils.fromString(String c)。 由于XSS泄漏的可能性。
结果是我得到一个看起来不好的标题(由于将SafeHtmlUtils.fromString转换为HTML实体引用)
我的问题是你可以用SafeHtml设置Window标题吗? 或者我如何将Safehtml转换回普通字符串?
代码(已更新):
public void setTitle(SafeHtml title) {
internalHeader.setPageTitle(title);
Window.setTitle(("fileee | " + title).replaceAll("\\<.*?>", ""));
}
//in internalHeader
public void setPageTitle(SafeHtml title) {
pageNameBig.setInnerSafeHtml(title);
}
pageNameBig是一个HeadingElement。
问题是如果我输入<h1>test
,结果是在Window.setTitle = <h1>test
但在internalHeader中是好的= dispalys <h1>test
是因为它的HTML实体引用。
答案 0 :(得分:1)
窗口标题上的XSS不可能,因为标题无法呈现HTML。
SafeHtml.asString()
会为您提供一个字符串,但不是来自SafeHtmlUtils.fromStrong
的原始字符串 - 相反,由于窗口标题无法显示任何HTML,因此根本不需要使用SafeHtml。