Cross-Site Scripting (XSS) происходит всякий раз, когда приложение берет ненадежные данные и отправляет их клиенту (браузеру) без проверки. Это позволяет злоумышленникам выполнять вредоносные скрипты в браузере жертвы, что может привести к захвату пользовательских сеансов, защите веб-сайтов или перенаправлению пользователя на вредоносные сайты.

Типы XSS

  • Хранимый XSS - Хранимый XSS, также известный как постоянный XSS, возникает, когда пользовательский ввод хранится на целевом сервере, таком как поле / комментарий форума / комментария базы данных и т. Д. Затем жертва может извлекать сохраненные данные из веб-приложения.
  • Отраженный XSS - отраженный XSS, также известный как непостоянный XSS, возникает, когда пользовательский ввод немедленно возвращается веб-приложением в результате сообщения об ошибке / результате поиска или ввода, предоставленного пользователем как часть запроса, и без постоянного хранения предоставленных пользователем данных ,
  • Основанный на DOM XSS - XSS на основе DOM является формой XSS, когда источник данных находится в DOM, приемник также находится в DOM, и поток данных никогда не покидает браузер.

Профилактические механизмы

  • Разработчики должны обеспечить, чтобы они избежали всех ненадежных данных на основе контекста HTML, таких как тело, атрибут, JavaScript, CSS или URL-адрес, в который помещаются данные.
  • Для тех приложений, для которых требуются специальные символы в качестве входных данных, должны существовать надежные механизмы проверки, прежде чем принимать их в качестве допустимых входных данных.