Я просто нашел странный случай, который привел к XSS, но я действительно не понимаю, почему. Код в вопросе искал тег с соответствующим именем, как это:jQuery Возврат к созданию объекта DOM, если поиск пуст?
var varName = getCookie('cookiename');
var link = $('.someclass a[name=' + varName + ']');
Если печенье происходит содержать XSS, выполнение, что приводит JQuery код в XSS выполняется. Я понимаю, что само по себе в DOM будет добавлено что-то вроде $ ('< img src = x onerror = alert (1) />') на основе того, что я прочитал в документации. Я не понимаю, почему код выше, с тем же самым тегом img, что и значение переменной, имеет тот же результат. Разве это не приведет к пустой переменной?
Какую версию JQuery? В предыдущих версиях приведенный выше код создавал элемент вместо того, чтобы возвращать пустой массив с недопустимым вводом. В более поздних версиях вместо этого возникает ошибка в этом случае. На самом деле это имеет место с версией jQuery stackoverflow, используемой в настоящее время. –