#asp.net-mvc #validation #asp.net-mvc-3 #asp.net-mvc-validation
#asp.net-mvc #проверка #asp.net-mvc-3 #asp.net-mvc-validation
Вопрос:
Я пытаюсь решить «Потенциально опасный запрос.Значение формы было обнаружено из-за проблемы клиента, и SO answers и Скотт Хансельман рекомендуют установить
<httpRuntime requestValidationMode="2.0" />
в Web.config (наряду с добавлением атрибута к проблемным методам).
Я понимаю, что это изменяет режим проверки на ASP.NET 2.0, но что это значит?
А также, имеет ли это изменение какие-либо побочные эффекты, о которых я должен знать?
Спасибо.
Ответ №1:
Ознакомьтесь с описанием в разделе HttpRuntimeSection MSDN.Свойство requestValidationMode.
2.0. Проверка запроса включена только для страниц, а не для всех HTTP-запросов. Кроме того, параметры проверки запроса элемента pages (если таковые имеются) в файле конфигурации или директивы @ 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-атакой
векторы.