4

ASP.NET WebForms アプリケーションがあります。データベースのコンテンツに基づいてページのタイトルを設定しています。

このコンテンツはユーザーが入力するため、HTML マークアップとして解釈される可能性のあるものを含め、任意の文字を含めることができます。したがって、タイトルを設定する前に、このコンテンツを HTML エンコードしています。

しかし、これが過度にエンコードされた結果を生成することで問題を引き起こしていることがわかります:

<title>Hoigaard&amp;#39;s Nordic Walking Tuesdays</title>

タイトルタグを設定するために使用されるテキストを安全にエンコードする正しい方法は何ですか?

4

2 に答える 2

3

これをテストしたところ、設定によってPage.Title 既にエンコードが実行されているようです。したがって、追加のエンコードにより、二重にエンコードされた結果が得られます。Page.Title直接設定するだけです:

Page.Title = "Test & Testing";

結果:

<title>Test &amp; Testing</title>
于 2012-08-22T15:18:06.650 に答える
0

PHP関数に似た関数を使用してくださいhtmlspecialchars()

<%
' Copyright (c) 2009, reusablecode.blogspot.com; some rights reserved.
' This work is licensed under the Creative Commons Attribution License.

' Convert special characters to HTML entities.
function htmlspecialchars(someString)
    ' Critical that ampersand is converted first, since all entities contain them.
    htmlspecialchars = replace(replace(replace(replace(someString, "&", "&amp;"), ">", "&gt;"), "<", "&lt;"), """", "&quot;")
end function
%>

ソース:http ://snipplr.com/view/12207/htmlspecialchars/

于 2012-08-22T15:16:40.977 に答える