«InnerText» предотвращает XSS? - PullRequest
       7

«InnerText» предотвращает XSS?

0 голосов
/ 08 октября 2018

Если я собираюсь отображать пользовательский ввод на моем сайте, достаточно ли безопасно просто отобразить его, выполнив Element.innerText = "user input" в javascript, или мне нужно дополнительно отфильтровать ввод, чтобы предотвратить XSS?

1 Ответ

0 голосов
/ 08 октября 2018

Внутренний текст предотвращает XSS?

Не во всех случаях! следующий отрывок взят из OWASP Foundation в отношении небезопасного использования innerText:

Одним примером атрибута, который считается безопасным, является innerText.Некоторые документы или руководства рекомендуют использовать его в качестве альтернативы innerHTML для смягчения воздействия XSS в innerHTML.Однако в зависимости от тега, к которому применяется innerText, код может быть выполнен.

Содержимое содержит следующий пример (который я изменил для ясности)

const tag = document.createElement("script");
tag.innerText = `console.log('Inner Text Used')`;
document.body.appendChild(tag); //executes code

Однако в случаях MOST innerText - это метод, который вы бы использовали для предотвращения XSS, а также документировано в OWASP :

... используйте innerText / textContent.Это решит проблему, и это верный способ устранения уязвимостей XSS на основе DOM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...