Недавно я столкнулся с интересной и опасной уязвимостью — DOM-based XSS (межсайтовый скриптинг на основе DOM). Это не обычная XSS, которую ловят на сервере, а более хитрая атака, которая работает прямо в браузере жертвы. Расскажу, как я её обнаружил и что сделал, чтобы защитить свой проект. 🕵️♂️ DOM XSS возникает, когда JavaScript берёт данные из ненадёжного источника (например, из URL) и вставляет их в опасные места на странице (sinks), такие как: Пример уязвимого кода: Если злоумышленник подставит в URL что-то вроде: — то в браузере выполнится вредоносный скрипт. Обнаружил уязвимость в коде jQuery: Оказалось, если в хеше (#) передать <img src=x onerror=alert(1)>, то jQuery вставит его в DOM и выполнит код! DOM XSS — коварная уязвимость, потому что её не видно в исходном коде страницы (она работает уже в браузере). Но если проверять все места, где данные попадают в DOM, и использовать безопасные методы, риск можно минимизировать. Совет: всегда проверяйте сторонние библиотеки (jQuery