XSS на страницах asp - PullRequest
       10

XSS на страницах asp

0 голосов
/ 25 мая 2018

У меня есть веб-сайт, который имеет много форм, которые сохраняются в БД и показываются пользователям, и для него требуется разрешение html.

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

Я использую Entity Framework, поэтому первая идея, которую я получил, - это вызвать метод перед db.SaveChanges.(), который будет проверять текстовые поля измененных объектов, а затем очищать их.

Есть ли в этом методе основные потоки?

public static void SanitizeDbContext(DbEntities db)
{
  var changes = from e in db.ChangeTracker.Entries()
                where e.State != EntityState.Unchanged
                select e;

  foreach (var change in changes)
  {
     //Sanatize if field is string
  }
}

1 Ответ

0 голосов
/ 25 мая 2018

Я бы предпочел провести дезинфекцию как можно скорее, чтобы вы могли регистрировать вредоносные ответы и прикреплять IP-адрес или даже имя пользователя к ответу для дальнейшего исследования.

Кроме того, связывая санацию с SaveChanges, вы делаете несколько утверждений, которые в дальнейшем могут оказаться неверными.

  1. Вы всегда будете использовать EF.Если вы прекратите это делать, я надеюсь, что вы не забудете перенести метод очистки на новый ORM, иначе у вас больше не будет защиты XSS.
  2. У вас нет ни одного места в вашемприложение, в котором ответ отправляется обратно напрямую на основе пользовательского ввода, а не через базу данных.Если такие места есть, ответ будет основан на неанизированном результате, который может вызвать проблемы (IE: непостоянная атака XSS).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...