XSS (Cross-Site Scripting) — инъекция вредоносного JavaScript в страницу, которую просматривают другие пользователи. Скрипт выполняется в браузере жертвы с правами текущего сайта: может похищать cookie, перехватывать нажатия клавиш, делать запросы от имени пользователя.
Типы
Reflected — скрипт в URL, отображается в одном ответе. Требует обмануть жертву нажать ссылку
Stored — скрипт сохранён в БД (комментарий, имя профиля) и показывается всем посетителям. Наиболее опасный
DOM-based — манипуляция DOM через JavaScript без участия сервера
Защита
Экранирование вывода — преобразуйте спецсимволы HTML в сущности: < → <. В PHP — htmlspecialchars(); в шаблонизаторах — автоматическое экранирование через двойные скобки
Content Security Policy — HTTP-заголовок, запрещающий выполнение inline-скриптов и скриптов со сторонних доменов
Никогда не выводите сырой HTML от пользователя без санитизации через специализированные библиотеки (HTML Purifier и др.)