Приложение выводит непроверенные данные так, что браузер воспринимает их как код. Этот код получает доступ к возможностям страницы и может действовать от имени пользователя.
Защита строится на контекстном кодировании вывода, безопасных шаблонах и DOM API, санитизации разрешённого HTML, Content Security Policy и автоматических тестах.
Комментарий сохраняется в базе и затем выводится без HTML-кодирования. Вместо текста браузеры других пользователей выполняют внедрённый обработчик события.
Нет. Бывают отражённые, хранимые и DOM-based XSS с разными путями данных.
CSP полностью устраняет XSS?Нет. Строгая CSP снижает последствия и блокирует часть сценариев, но основой остаётся безопасный вывод.
Что значит контекстное кодирование?Способ экранирования выбирают по месту вставки: HTML, атрибут, URL, CSS или JavaScript требуют разных правил.