Mastodon Mastodon Mastodon Mastodon

Межсайтовый скриптинг [XSS]

Обновлено: · CyberSecureFox Editorial Team

Межсайтовый скриптинг (XSS) — уязвимость веб-сайта, которая позволяет внедрить вредоносный JavaScript в страницы, которые видят другие пользователи, и выполнить его в их браузерах с правами сайта.

Как работает XSS

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

Три основных типа:

  • Хранимый (stored). Код сохраняется на сервере, например в комментарии или профиле, и срабатывает у каждого посетителя.
  • Отражённый (reflected). Код находится в ссылке и возвращается в ответе сервера, поэтому жертва должна открыть подготовленный URL.
  • DOM-based. Ошибка в клиентском коде, который записывает небезопасные данные в страницу.

Почему XSS опасен

Внедрённый скрипт может:

  • украсть сессионные cookie и токены;
  • выполнять действия от имени пользователя;
  • показать поддельную форму входа;
  • перенаправить на вредоносный сайт или изменить содержимое страницы.

В 2005 году червь Samy через хранимый XSS за сутки добавил в друзья больше миллиона пользователей MySpace. Сегодня XSS в админ-панелях, веб-почте и плагинах популярных CMS — частый способ захвата аккаунтов и сайтов. Вместе с SQL-инъекциями XSS относится к семейству инъекционных уязвимостей.

Как предотвратить XSS

  • Экранируйте вывод с учётом контекста (HTML, атрибут, JavaScript, URL). Современные фреймворки делают это по умолчанию — не обходите эту защиту.
  • Очищайте пользовательский HTML проверенной библиотекой, например DOMPurify.
  • Включите строгую Content Security Policy (CSP), которая запрещает встроенные и сторонние скрипты.
  • Помечайте сессионные cookie флагами HttpOnly и Secure, обновляйте плагины CMS.
Синонимы:
межсайтовое выполнение сценариев, cross-site scripting, XSS-атака