У меня есть форма контакта на моем веб-сайте, из-за которой я получаю сообщения об ошибке "Возможно, из клиента обнаружено потенциально опасное значение Request.Form".
Я предпринял некоторые меры чтобы попытаться остановить их, в том числе:
- Добавление токена защиты от подделки
- Добавление регулярного выражения в модель формы контакта для предотвращения отправки большинства специальных символов
- Добавление Напомним V3 в виде
Модель:
[Required]
[DataType(DataType.MultilineText)]
[RegularExpression(@"^[a-zA-Z0-9!?£$'"",.&\-\s]+$", ErrorMessage = "Special characters are not allowed")]
public string Message { get; set; }
Вид
@using (Html.BeginForm(null, null, FormMethod.Post, new { controller = "home", action = "Contact"}))
{
@Html.AntiForgeryToken()
<div class="form">
<div class="form_inner">
<div class="fieldset">
@Html.TextAreaFor(model => model.Message, 8, 25, new { required = "required" })
@Html.ValidationMessageFor(model => model.Message)
</div>
<footer>
@Html.HiddenFor(model => model.GoogleCaptchaToken)
<input type="submit" value="Send Email" class="btn btn_submit" />
</footer>
</div>
</div>
}
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Contact(Contact model)
{
if (ModelState.IsValid)
{
var isCaptchaValid = await IsCaptchaValid(model.GoogleCaptchaToken);
if (isCaptchaValid)
{
_contactUsService.SendEmail(model);
}
else
{
ModelState.AddModelError("GoogleCaptcha", "The captcha is not valid");
} }
return Redirect("/contact/thankyou");
}
Однако они до сих пор имеют не удалось остановить эти сообщения об ошибках.
В сообщении об ошибке никогда не указывается все отправленное сообщение, поэтому я не вижу, что его вызвало. Есть ли что-то еще, что я могу добавить, чтобы предотвратить их прохождение, или чтобы я мог видеть, что публикуется из формы?
Спасибо