Sobes.tech
Senior

Kullanıcı girişlerini eklemek için innerHTML kullanmakla ilgili güvenlik sorunları nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Использование 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 без фильтрации открывает дверь для выполнения вредоносного кода, что может привести к краже данных, сессий и другим атакам.