Является ли 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.