Эквивалент htmlspecialcharacs PHP в .NET? - PullRequest
18 голосов
/ 19 августа 2008

PHP имеет замечательную функцию под названием htmlspecialcharacters () , где вы передаете ему строку, и он заменяет все специальные символы HTML их безопасными эквивалентами, это почти универсальный магазин для санитарный ввод. Очень хорошо, верно?

Ну есть ли эквивалент в любой из библиотек .NET?

Если нет, может ли кто-нибудь ссылаться на примеры кода или библиотеки, которые делают это хорошо?

Ответы [ 5 ]

11 голосов
/ 19 августа 2008

Попробуйте это.

var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
9 голосов
/ 19 августа 2008
4 голосов
/ 19 августа 2008

Не знаю, есть ли точная замена, но есть метод HtmlUtility.HtmlEncode, который заменяет специальные символы их HTML-эквивалентами. Близкий родственник HtmlUtility.UrlEncode для рендеринга URL. Вы также можете использовать элементы управления валидатора, например RegularExpressionValidator, RangeValidator и System.Text.RegularExpression.Regex, чтобы убедиться, что вы получаете то, что хотите.

2 голосов
/ 11 августа 2009

На самом деле, вы можете попробовать этот метод:

HttpUtility.HtmlAttributeEncode()

Почему? Ссылаясь на страницу HtmlAttributeEncode в документах MSDN :

Метод HtmlAttributeEncode преобразовывает только кавычки ("), амперсанды (&) и левые угловые скобки (

0 голосов
/ 16 апреля 2015

В дополнение к данным ответам: При использовании Razor view engine (который является механизмом просмотра по умолчанию в ASP.NET), использование символа '@' для отображения значений будет автоматически кодировать отображаемое значение. Это означает, что вам не нужно использовать кодировку.

С другой стороны, когда вы не хотите, чтобы текст был закодирован, вы должны указать это явно (используя @Html.Raw). Что, на мой взгляд, хорошо с точки зрения безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...