Назад к вопросам
Senior
3
Как правильно вставить пользовательский текст в DOM, сохранив HTML-разметку, но избежав XSS?
Компании, где спрашивали
Bitrix
Ответ от нейросети
sobes.tech AI
Чтобы вставить пользовательский текст в DOM, сохранив HTML-разметку, но избежать XSS, нужно:
- Разрешить только безопасные теги и атрибуты, отфильтровав или экранировав опасные (например, <script>, inline event handlers).
- Использовать специализированные библиотеки для очистки 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 без вредоносных скриптов.