ASP.NET и HTML / XML в контрольном тексте - PullRequest
0 голосов
/ 21 июля 2011

У меня есть несколько веб-форм, которые должны быть в состоянии принять ввод XML (содержащий, конечно, символы < и >, которые, как я считаю, вызывают проблемы). Однако в настоящее время всякий раз, когда я нажимаю кнопку отправки, и одно из полей формы содержит этот вид ввода, выдается исключение Sys.WebForms.PageRequestManagerServerErrorException с кодом 500. Если на входе нет < и >, все идет гладко. Как я могу обойти это?

Ответы [ 4 ]

2 голосов
/ 21 июля 2011

Я бы с осторожностью отключил проверку страницы. Вместо этого посмотрите HTML-кодировку текста.

1 голос
/ 21 июля 2011

Каждый раз, когда вы имеете дело с вводом HTML / XML пользователем, вы должны быть предельно осторожны и быть уверенными, что тщательно очистите ввод.

Различные веб-элементы управления реализуют (или не используют) HtmlEncoding по умолчанию.Взгляните на Какие элементы управления ASP.NET автоматически кодируют? для получения подробного списка.

Я бы также рекомендовал взглянуть на Microsoft Anti-Cross Site Scripting Library .

Можете ли вы отредактировать свой вопрос и опубликовать часть кода (и, возможно, пример ввода, который вызывает ошибку)?< и > могут быть причиной, но это может быть и красная сельдь.

1 голос
/ 21 июля 2011

Если вы по-прежнему хотите, чтобы проверка запроса страницы работала должным образом (т. Е. Без установки значения false), вы всегда можете заменить символы <&> символами и заменить их обратно с сервера.

1 голос
/ 21 июля 2011

Проверка запроса включена по умолчанию.Вы можете отключить все страницы, используя web.config:

<configuration> 
      <system.web> 
           <pages validateRequest="false" /> 
      </system.web> 
</configuration>

или просто на этой странице, добавив его в директиву:

<%@ Page validateRequest="false" %> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...