Что на самом деле делает requestValidationMode = "2.0"? - PullRequest
18 голосов
/ 01 июня 2011


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

<httpRuntime requestValidationMode="2.0" />

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

Спасибо.

Ответы [ 2 ]

15 голосов
/ 07 декабря 2011

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

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

1 голос
/ 01 июня 2011

Взгляните на Проверка запросов 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 векторы.

...