Как отобразить сообщение об ошибке "Обнаружено потенциально опасное значение Request.Form"

Я кодирую вид MVC 5, и у меня есть вопрос в отношении обнаружения HttpRequestValidationException,

Вот код контроллера:

public async Task<ActionResult> TestView()
{
    return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> TestView(TestModelViewModel testModelViewModel)
{
    return View("Index");
}

Вот код вида:

@model CanFindLocation.ViewModels.TestModelViewModel

@{
    ViewBag.Title = "TestView";
}

<h2>TestView</h2>

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    @Html.ValidationSummary(true, "", new { @class = "text-danger" })

    <div class="form-group">
        <label class="control-label col-md-2" for="txtExpiryMonth">Expiry Month</label>
        <div class="col-md-10" id="txtExpiryMonthDivClass">
            <input class="form-control text-box single-line" id="txtExpiryMonth" name="ExpiryMonth" type="text" value="" />
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>

}

Я могу ввести некоторый HTML-код следующим образом в элемент управления формы ExpiryMonth:

<html>

<html> код в настоящее время разрешено находиться в элементе управления формы, и следующая ошибка НЕ ​​отображается после нажатия кнопки отправки:

Ошибка сервера в приложении '/'

От клиента было обнаружено потенциально опасное значение Request.Form (name="").

Описание: ASP.NET обнаружил в запросе данные, которые потенциально опасны, поскольку могут содержать разметку HTML или сценарий. Данные могут представлять собой попытку поставить под угрозу безопасность вашего приложения, такую ​​как атака с использованием межсайтовых сценариев. Если этот тип ввода подходит для вашего приложения, вы можете включить код на веб-странице, чтобы явно разрешить его. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkID=212874.

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

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение. Информация о происхождении и местоположении исключения может быть идентифицирована с помощью трассировки стека исключений ниже.

Как я НЕ ПРЕДУПРЕЖДАЮ пользователей вводить вредоносный код? Когда я строю контроллер с представлениями (мой приведенный выше код НЕ сделан из лесов), отображается вышеуказанная ошибка.

Заранее спасибо.

РЕДАКТИРОВАТЬ

Я не хочу разрешать пользователю вводить HTML-код, я хочу запретить пользователю вводить HTML-код. Как лесные виды делают это? Какой код мне нужно добавить к моему представлению / контроллеру, чтобы при вводе кода HTML в представлении отображалась страница ошибки?

2 ответа

Приложение делает именно то, что должно делать. Поле не допускает HTML, поэтому, если кто-то публикует HTML, возникает ошибка сервера. Это совершенно правильный ответ. Если пользователь использует данные запроса, целесообразно вернуть ошибку сервера.

Вы можете добавить это к своему сообщению и добавить htmlencode в свой код

[ValidateInput(false)]
Другие вопросы по тегам