Выбор ответа Junior Безопасность фронтенда спрашивают часто обновлено

Найди XSS в коде

Вопрос

Какая строка открывает возможность для XSS?

const q = new URLSearchParams(location.search).get('q');
// A
title.textContent = q;
// B
input.value = q;
// C
results.innerHTML = '<b>' + q + '</b>';
// D
document.title = q;

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: C. innerHTML разбирает строку как HTML: ?q=<img src=x onerror=... выполнит код атакующего.

Варианты ответа

  1. A
  2. B
  3. Cправильный ответ
  4. D

Разбор

innerHTML разбирает строку как HTML: ?q=<img src=x onerror=...> выполнит код атакующего. Это DOM-based XSS. textContent, value и document.title записывают текст как есть, разметка не интерпретируется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме