Можно ли включить кодировку HTML по умолчанию в ASP.NET 4? - PullRequest
2 голосов
/ 04 августа 2010

В ASP.NET 4 мы можем использовать новый оператор <%: ... %> для вывода строк в кодировке HTML.Можно ли настроить ASP.NET 4 (в web.config), чтобы оператор <%= ... %> также кодировал строки HTML?

Ответы [ 2 ]

3 голосов
/ 04 августа 2010

Нет, к счастью.

Если вы настроите его таким образом, ваши разработчики привыкнут использовать <%= ... %>, а не кодировать.

Если они впоследствии будут работать по другому (нормального) проекта, они в конечном итоге забудут закодировать свои выходные данные.

ASP.Net Razor по умолчанию использует кодировку HTML, поскольку у него нет этой проблемы.
(Тамэто не код Razor, который можно переключить на код по умолчанию)

2 голосов
/ 04 августа 2010

Лично мне не нравится этот новый синтаксис <%:. Я скорее использую <%= HttpUtility.HtmlEncode(, потому что это намного более явно.

Кроме того, он дает ложное чувство безопасности, потому что он выполняет только кодирование HTML. Посмотрите на этот фрагмент, например:

function myJavaScriptFunction()
{
    var message = '<%: Person.LastComment %>';
    alert(message);
}

Это не сохранение, потому что оно не использует правильную кодировку. Следующее безопасно:

function myJavaScriptFunction()
{
    var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
    alert(message);
}

Гораздо точнее.

...