DOM-based XSS

Скрипт внедряется через небезопасную работу клиентского JS с DOM, без участия сервера.

СигнатураDOM-based XSS

DOM-based XSS происходит целиком на стороне клиента: JavaScript берёт данные из location.hash, document.referrer и т.п. и без обработки вставляет их в DOM через опасные приёмники вроде innerHTML.

Как защититься: используйте безопасные методы (textContent вместо innerHTML), санитизируйте данные перед вставкой, применяйте Trusted Types и CSP.

// Опасно: данные из URL пишутся в innerHTML
const name = location.hash.slice(1);
document.getElementById("out").innerHTML = name;
// #<img src=x onerror=alert(1)> выполнится

// Безопасно: textContent не интерпретирует разметку
const name = location.hash.slice(1);
document.getElementById("out").textContent = name;
← Все записи: Веб-уязвимости и защита
Поддержать проект