0

SafeHtmlをWindow.setTitle()に送信する必要があります。問題は、タイトルにSafeHtmlUtils.fromString(String c)を使用していることです。XSSリークの可能性があるため。

その結果、見栄えの悪いタイトルが表示されます(SafeHtmlUtils.fromStringからHTMLエンティティ参照への変換が原因)

私の質問は、SafeHtmlでウィンドウタイトルを設定できますか?または、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エンティティ参照によるものです。

4

1 に答える 1

1

ウィンドウのタイトルはHTMLをレンダリングできないため、XSSでウィンドウのタイトルを表示することはできません。

SafeHtml.asString()元の文字列ではありませんが、文字列を取得しますSafeHtmlUtils.fromStrong-代わりに、ウィンドウタイトルはHTMLを表示できないため、SafeHtmlを使用する必要はまったくありません。

于 2012-08-03T13:08:45.320 に答える