вход - PullRequest
       13

вход

0 голосов
/ 22 марта 2011

Я пишу пример Hello World, используя ASP.net MVC 2 Framework с двумя текстовыми полями для поля имени пользователя и пароля.

    <form action=/Home/Index method="post">
        <input type="text" id="UserName" name="UserName" maxlength="100" tabindex="1" autocomplete="off"/>
        <input type="password" id="Password" name="Password" maxlength="15" tabindex="2" autocomplete="off"/>
        <input type="submit" value="submit" />
    </form>

Когда я вхожу в поле имени пользователя, я получаю это сообщение

Потенциально опасное значение Request.Form было обнаружено от клиента (Email = " Описание: Проверка запроса обнаружила потенциально опасное входное значение клиента, и обработка запроса была прервана. Это значение может указывать на попытку поставить под угрозу безопасность вашего приложения, например атаку с использованием межсайтовых сценариев. Чтобы страницы могли переопределять параметры проверки запросов приложения, установите для атрибута requestValidationMode в разделе конфигурации httpRuntime значение requestValidationMode = "2.0". Пример: . После установки этого значения вы можете отключить проверку запроса, установив validateRequest = "false" в директиве Page или в разделе конфигурации. Тем не менее, настоятельно рекомендуется, чтобы ваше приложение явно проверило все входные данные в этом случае. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkId=153133.

Сведения об исключении: System.Web.HttpRequestValidationException: потенциально опасное значение Request.Form было обнаружено от клиента (Email = "

Кто-то, пожалуйста, скажите мне, как это исправить, похоже, отправка запроса еще не перенаправлена ​​на мой контроллер. Большое спасибо!

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Встроенная проверка входных данных вызывает исключение из-за символа <, который потенциально может использоваться при атаках с использованием межсайтовых сценариев и т. Д. Таким образом, он перехватывает запрос и выдает ошибку, прежде чем что-либо попадет к вам. контроллер просто для безопасности.

Это не ограничивается только платформой MVC, это общая вещь ASP .NET. Есть довольно хороший вопрос с некоторыми довольно хорошими ответами по этому поводу здесь .

0 голосов
/ 22 марта 2011

Несколько указателей:

Сначала попробуйте запустить сайт как .NET 2.0, а не 4.0. Вы используете IISExpress? Если это так, есть переключатель для установки CLR на версию 2. см. Здесь:

http://learn.iis.net/page.aspx/870/running-iis-express-from-the-command-line/

Далее система всегда будет искать символы HTML в опубликованных данных, поскольку это указывает на атаки сценариев между сайтами. Если вы ожидаете, что эти значения будут содержать символы HTML, вы можете добавить исключение в действие контроллера следующим образом:

[ValidateInput(false)]
public ActionResult ActionName(ModelType model)
{
   ....

  return View();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...