Яндекс.Метрика
Москва, Волгоградский пр-т,
43к3, оф. 301
Пишите 24/7, мы онлайн
+7 (495) 128-00-14
последнее обновление: 17.12.2025

Определение: XSS (Cross-Site Scripting) — это уязвимость, при которой на странице сайта выполняется вредоносный JavaScript-код, подставленный злоумышленником через ввод пользователя (комментарии, формы, параметры URL). В итоге атакующий может, например, украсть сессию, подменить содержимое страницы или выполнить действия от имени пользователя.

Зачем это нужно

  • Защитить пользователей от кражи cookies/токенов и захвата аккаунтов.
  • Предотвратить подмену контента (фишинг прямо на вашем домене).
  • Снизить риск действий «от лица пользователя» (заявки, покупки, смена данных).
  • Не допустить попадания вредоносных скриптов в выдачу и блокировок со стороны браузеров/антивирусов.
  • Понимать, где опасные места: комментарии, отзывы, поиск, фильтры, чаты, UGC-контент.

Пример

Пример кода:

// ПЛОХО: вставка пользовательского ввода как HTML
element.innerHTML = userInput

// ХОРОШО: вставка как текст (скрипт не выполнится)
element.textContent = userInput

Если вставлять ввод пользователя через innerHTML, браузер может интерпретировать его как разметку и выполнить внедрённый скрипт. Безопаснее выводить как текст или строго экранировать данные и разрешать только безопасные теги.

Скриншот

Пример XSS в форме или комментарии: в поле введён HTML/скрипт, а в предпросмотре или на странице виден неожиданный вывод; рядом показана строка, где ввод отображается без экранирования

Подпись к скриншоту: страница с формой/комментарием, где демонстрируется опасный ввод и видно, что сайт отображает его без экранирования (как HTML).

Частые ошибки

  • Надеяться на «фильтр запрещённых слов» вместо правильного экранирования по контексту (HTML/атрибут/URL/JS).
  • Проверять ввод только на фронтенде и считать, что на сервере можно не валидировать.
  • Использовать innerHTML для вывода пользовательских данных «ради удобства».
  • Делать глобальные исключения в WAF, не закрывая источник уязвимости в коде.

Связанные термины

  • WAF
  • OWASP Top 10
  • CSRF
  • Cookie
  • Content Security Policy (CSP)
  • Экранирование (escaping)

Наши услуги