Senior
Hogyan helyezzük el helyesen a felhasználói szöveget a DOM-ba, megőrizve a HTML-formázást, de elkerülve az XSS-t?
sobes.tech MI
Válasz az MI-től
Чтобы вставить пользовательский текст в 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 без вредоносных скриптов.