gwt在window.settitle中使用safehtml来设置浏览器标题

时间:2012-08-03 08:51:58

标签: gwt xss

我需要向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 = &lt;h1&gt;test

但在internalHeader中是好的= dispalys <h1>test

是因为它的HTML实体引用。

1 个答案:

答案 0 :(得分:1)

窗口标题上的XSS不可能,因为标题无法呈现HTML。

SafeHtml.asString()会为您提供一个字符串,但不是来自SafeHtmlUtils.fromStrong的原始字符串 - 相反,由于窗口标题无法显示任何HTML,因此根本不需要使用SafeHtml。