Невозможно напечатать определенную строку в HTML, используя javaScript - PullRequest
0 голосов
/ 24 августа 2018

Я столкнулся с трудностью при переводе этой строки в html с использованием javaScript

"<img onerror='window.document.body.innerHTML = \"<h1>XSS</h1>\";' src=''> "

Когда я пытаюсь преобразовать его в элемент HTML с использованием JavaScript, я получаю только один вывод: XSS на простой странице

Пожалуйста, предложите способ, которым я мог бы преобразовать это в HTML как обычный текст.

Ответы [ 3 ]

0 голосов
/ 24 августа 2018

Если вы хотите, чтобы весь HTML-код отображался в виде текста, используйте innerText или textContent, поскольку они не будут пытаться отобразить HTML-код.

//using template literals ` (backtick) to help not need escaping quotes
document.body.innerText = `<img onerror="window.document.body.innerHTML ='<h1>XSS</h1>';" src=''>`

В противном случае, если вы хотите, чтобы деталь <h1> отображалась в виде текста, используйте тот же innerText / textContent, но для встроенного кода js

<img onerror="window.document.body.innerText ='<h1>XSS</h1>';" src=''>
0 голосов
/ 24 августа 2018

Используйте element.innerText, если вы хотите пропустить HTML-код из рендера:

document.getElementById("test").innerText = "<h1>XSS</h1>";
<div id="test">test</div>
0 голосов
/ 24 августа 2018

Попробуйте использовать Node.textContent вместо Node.innerHTML:

"<img onerror='window.document.body.textContent = \"<h1>XSS</h1>\";' src=''> "

https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#Differences_from_innerHTML

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