Почему ValidateInput (False) не работает?

eval() интерпретирует строку как код. Причина, по которой так много людей предупреждала вас об использовании этого, заключается в том, что пользователь может использовать это как вариант для запуска кода на компьютере. Если вы импортировали eval(input()) и os, человек может ввести в input() os.system('rm -R *'), который удалит все ваши файлы в вашем домашнем каталоге. (Предположим, что у вас есть система unix). Использование eval() - это дыра в безопасности. Если вам нужно преобразовать строки в другие форматы, попробуйте использовать те вещи, которые делают это, например int().

34
задан Dekryptid 30 April 2009 в 15:58
поделиться

2 ответа

Are you sure that the controller action being posted to is the one you have the attributes on?

17
ответ дан 27 November 2019 в 15:51
поделиться

В asp.net 4 вам также необходимо настроить режим проверки в файле web.config.

Установите следующее в качестве дочернего элемента элемента:

<system.Web>
  ...
  <httpRuntime requestValidationMode="2.0"/>     

Asp.Net 4 устанавливает для параметра requestValidationMode значение 4.0 по умолчанию, что указывает системе выполнить проверку запроса перед фазой BeginRequst HTTP-запроса. Проверка будет происходить до того, как система достигнет атрибута действия, сообщающего ей не проверять запрос, что делает атрибут бесполезным. Установка requestValidationMode = "2.0" вернет поведение проверки запроса asp.net 2.0, позволяя атрибуту ValidateInput работать должным образом.

133
ответ дан 27 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: