DOM-XSS
Что такое DOM-XSS?
DOM-XSSРазновидность XSS, при которой внедрение и выполнение целиком происходят в браузере: клиентский JavaScript записывает недоверенные данные в опасный DOM-приёмник.
DOM-XSS (Type-0) — это уязвимость межсайтового скриптинга, причина которой целиком находится в клиентском коде. Источник данных (location.hash, document.referrer, window.name, postMessage, localStorage) без санитизации передаётся в опасный DOM-приёмник: innerHTML, document.write, eval, jQuery.html. Сервер не видит полезную нагрузку, поэтому уязвимость невидима для классических WAF и серверных журналов. Защита включает безопасные API (textContent), Trusted Types в современных браузерах, строгую CSP и инструменты статического анализа, отслеживающие поток заражённых данных от источников к приёмникам.
● Примеры
- 01
document.getElementById('out').innerHTML = location.hash.substring(1);
- 02
Маршрутизатор SPA использует window.location для вставки несанитизированного HTML в шаблон.
● Частые вопросы
Что такое DOM-XSS?
Разновидность XSS, при которой внедрение и выполнение целиком происходят в браузере: клиентский JavaScript записывает недоверенные данные в опасный DOM-приёмник. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает DOM-XSS?
Разновидность XSS, при которой внедрение и выполнение целиком происходят в браузере: клиентский JavaScript записывает недоверенные данные в опасный DOM-приёмник.
Как работает DOM-XSS?
DOM-XSS (Type-0) — это уязвимость межсайтового скриптинга, причина которой целиком находится в клиентском коде. Источник данных (location.hash, document.referrer, window.name, postMessage, localStorage) без санитизации передаётся в опасный DOM-приёмник: innerHTML, document.write, eval, jQuery.html. Сервер не видит полезную нагрузку, поэтому уязвимость невидима для классических WAF и серверных журналов. Защита включает безопасные API (textContent), Trusted Types в современных браузерах, строгую CSP и инструменты статического анализа, отслеживающие поток заражённых данных от источников к приёмникам.
Как защититься от DOM-XSS?
Защита от DOM-XSS обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия DOM-XSS?
Распространённые альтернативные названия: XSS типа 0, Клиентский XSS.
● Связанные термины
- attacks№ 240
Межсайтовый скриптинг (XSS)
Веб-уязвимость, позволяющая злоумышленнику внедрять вредоносные скрипты на страницы, просматриваемые другими пользователями, и выполнять их в браузере жертвы под источником сайта.
- attacks№ 1107
Хранимый XSS
Постоянная межсайтовая скриптинг-уязвимость: вредоносный скрипт сохраняется на сервере и выполняется в браузере каждого посетителя.
- attacks№ 912
Отражённый XSS
Непостоянный XSS, при котором подконтрольный атакующему ввод сразу отражается в ответе и исполняется в браузере жертвы.
- appsec№ 214
Политика безопасности контента (CSP)
HTTP-заголовок ответа, указывающий браузеру, какие источники скриптов, стилей, фреймов и других ресурсов допустимы, что снижает последствия XSS и инъекций данных.
- vulnerabilities№ 869
Загрязнение прототипа
JavaScript-уязвимость, при которой недоверенный ввод изменяет Object.prototype, добавляя свойства всем объектам и меняя поведение приложения вплоть до RCE.
- appsec№ 773
Кодирование вывода
Преобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код.
● См. также
- № 104Слепой XSS