Sobes.tech
Senior

Kokios saugumo problemos yra susijusios su innerHTML naudojimu vartotojo įvesties įterpimui?

sobes.tech AI

Atsakymas iš AI

Использование innerHTML для вставки пользовательского ввода несет серьезные риски безопасности, главным образом связанные с XSS-атаками (межсайтовым скриптингом). Если пользовательский ввод напрямую вставляется в DOM через innerHTML без должной очистки или экранирования, злоумышленник может внедрить вредоносный JavaScript-код.

Пример проблемы:

const userInput = '<img src=x onerror=alert("XSS")>';
document.getElementById('output').innerHTML = userInput;

В результате на странице выполнится alert, что демонстрирует XSS.

Чтобы избежать этого:

  • Никогда не вставляйте необработанный пользовательский ввод через innerHTML.
  • Используйте методы, которые вставляют текст, а не HTML, например, textContent.
  • Если нужно вставить HTML, применяйте библиотеки для безопасного санитайзинга (например, DOMPurify).

Таким образом, innerHTML без фильтрации открывает дверь для выполнения вредоносного кода, что может привести к краже данных, сессий и другим атакам.