LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как правильно проверять данные от клиента?

Всем привет!

У меня пользователи пишут записи в свои блоги, оформляют статьи в html редакторе, в базу идет html текст, контроллер создания записи:

[HttpPost]
        [ValidateAntiForgeryToken()]      
        public JsonResult CreateRecordBlog(BusinessLayer.Record.Record recordBL)
        {
...


модель статьи:

[Required]
        [AllowHtml]
        [StringLength(5000, ErrorMessage = "Размер записи должен быть минимум 200 знаков и максимум 5000.", MinimumLength = 200)]
        public string Text { get; set; }
...


как видите разрешен html текст.

Недавно обновил версию асп, ну и все nuget пакеты, кроме обновления пакетов ничего больше не трогал. При публикации записи, на локале все ок, публикуется, а на сервере вот такой эксепшн:

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

...").

выаываываывав - это тест для публикации. Все пересмотрел, не публикует хоть тресни, а на локале (локал настроен на боевую БД на хосте) все работает.

В итоге на контроллер создания записи пришлось навесить:

[ValidateInput(false)]

теперь работает, но как же раньше оно работало? И я так понимаю это брешь в безопасности, теперь можно записать всякую гадость, скрипт и т. д.
  • Вопрос задан
  • 2540 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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