Является ли createTextNode полностью безопасным от HTML-инъекции и XSS?
Я работаю над одной страницей webapp. Я делаю рендеринг, напрямую создавая узлы DOM. В частности, все пользовательские данные добавляются на страницу путем создания текстовых узлов с помощью document.createTextNode("user data")
.
Помогает ли этот подход избежать возможности инъекции HTML, межсайтового скриптинга (XSS) и всех других злых вещей, которые могут сделать пользователи?
Ответы
Ответ 1
Создает простой текст node, поэтому да, насколько это возможно.
Можно создать проблему XSS, используя небезопасный метод для получения данных из любого канала, который он вводит в createTextNode
, хотя.
например. Следующее будет небезопасно:
document.createTextNode('<?php echo $_GET['xss']; ?>');
... но опасность от PHP echo
, а не от JavaScript createTextNode
.