Подтвердить что ты не робот

Что действительно делает requestValidationMode = "2.0"?


Я пытаюсь решить проблему "потенциально опасное значение Request.Form было обнаружено из проблемы клиента", а ответы SO и Scott Hanselman рекомендуют устанавливать

<httpRuntime requestValidationMode="2.0" />

в Web.config(наряду с добавлением атрибута к проблемным методам).
Я понимаю, что это меняет режим проверки на ASP.NET 2.0, но что это значит?
И также, имеет ли это изменение какие-либо побочные эффекты, о которых я должен знать?

Спасибо.

4b9b3361

Ответ 1

Ознакомьтесь с описанием в Свойства MSDN HttpRuntimeSection.RequestValidationMode.

2.0. Проверка запроса разрешена только для страниц, а не для всех HTTP-запросов. Кроме того, параметры проверки запроса на страницах элемент (если есть) в файле конфигурации или директивы @Page на отдельной странице используются для определения того, какая страница запрашивает проверки.

Ответ 2

Посмотрите Проверка запроса ASP.NET >

Функция проверки запроса в ASP.NET обеспечивает определенный уровень защита по умолчанию от атак на межсайтовый скриптинг (XSS). В предыдущие версии ASP.NET, проверка запроса была включена по умолчанию. Однако он применяется только к страницам ASP.NET(файлы .aspx и их файлы классов) и только тогда, когда эти страницы выполнялись.

В ASP.NET 4 по умолчанию проверка запроса включена для всех запросов, поскольку он включен до этапа BeginRequest HTTP-запрос. В результате проверка запроса применяется к запросам на все ресурсы ASP.NET, а не только запросы страницы .aspx. Это включает запросы, такие как вызовы веб-службы и пользовательские обработчики HTTP. Запрос проверка подлинности также активна, когда пользовательские модули HTTP читают содержимое HTTP-запроса.

В результате теперь могут возникнуть ошибки проверки запроса для запросов что ранее не вызывало ошибок. Чтобы вернуться к поведению функция проверки запроса ASP.NET 2.0, добавьте следующую настройку в файле Web.config:

<httpRuntime requestValidationMode="2.0" />

Однако мы рекомендуем проанализировать любые ошибки проверки запроса чтобы определить, существуют ли существующие обработчики, модули или другой пользовательский код доступ к потенциально опасным HTTP-входам, которые могут быть атакой XSS векторы.