ASP. Проверка запроса .NET с помощью символов в кодировке HTML

У меня есть текстовое поле в форме, которое должно принимать ввод с помощью тегов HTML.

Отправка ввода с тегами HTML в заставляет приложение генерировать исключение HttpRequestValidationException , если мы не используем HttpUtility.HtmlEncode . Пока все просто.

Однако входные данные могут также содержать символы, такие как символ «градусы» (°). Когда они также закодированы в HTML, они становятся числовыми escape-кодами, в этом примере & # 176; . Эти коды также вызывают HttpRequestValidationException , но вопрос в том, почему?

Я могу ' Я не понимаю, почему числовые escape-коды считаются потенциально опасными, особенно потому, что & deg; отлично работает как ввод.

Кажется, я застрял, так как оставить ввод как есть не удается из-за тегов , и HTML-кодирование ввода не выполняется из-за числовых переходов. Мое решение до сих пор заключалось в кодировании HTML, затем регулярное выражение заменяет escape-последовательности их HTML-декодированными формами, но я не уверен, что это безопасное решение, поскольку я предполагаю, что escape-последовательности считаются опасными по какой-то причине.

5
задан jonnystoten 20 September 2010 в 09:30
поделиться