Аннотация:В данной работе рассматривается метод обнаружения уязвимостей типа DOM-based XSS. Идея метода состоит в отслеживании потоков данных в коде клиентской стороны веб-приложения и обнаружения среди них небезопасных, приводящих к появлению уязвимости. Под потоками данных понимаются пары из источников, т. е. переменных, откуда данные берутся клиентским кодом, и где на них может повлиять атакующий, и точек назначения, т. е. переменных, значения которых могут быть проинтерпретированы и выполнены как клиентский код. Поток данных будет считаться небезопасным, если данные в точке назначения зависят от контролируемого атакующим источника, и при этом на пути от источника к точке назначения данные не подвергаются достаточной фильтрации. Обнаружение потоков данных осуществляется с помощью т. н. теинтирования (англ. taint checking). Проверка безопасности фильтрации производится путем фаззинга (англ. fuzzing) - перебора возможных векторов атаки в источнике и проверки того, привело ли применение какого-то из векторов к успешной эксплуатации уязвимости, то есть выполнению вредоносного кода.