Sobes.tech
Back to questions
Senior
2

Как правильно вставить пользовательский текст в DOM, сохранив HTML-разметку, но избежав XSS?

Companies where asked
Bitrix

Answer from AI

sobes.tech AI

Чтобы вставить пользовательский текст в DOM, сохранив HTML-разметку, но избежать XSS, нужно:

  1. Разрешить только безопасные теги и атрибуты, отфильтровав или экранировав опасные (например, <script>, inline event handlers).
  2. Использовать специализированные библиотеки для очистки HTML, например DOMPurify.

Пример с использованием DOMPurify (JavaScript):

import DOMPurify from 'dompurify';

const userInput = '<b>Привет</b> <script>alert("XSS")</script>';
const cleanHTML = DOMPurify.sanitize(userInput);
document.getElementById('output').innerHTML = cleanHTML;

В результате в DOM попадёт только безопасный HTML без вредоносных скриптов.