@kirill-93

Как тут можно разместить зловредный скрипт?

Приложение на vuejs, в одном из интерфейсов вывожу пользовательское сообщение без фильтрации на xss.
<div v-html="userInput"></div>
Прочел, что для предотвращения XSS, можно использовать jQuery.text(). Но перед этим я решил сам попробовать что-нибудь вставить, чтоб знать от чего защищаться.
HTML теги вставляются и работают исправно, а вот javascript код не работает. Я так понимаю это потому, что данные этого компонента выводятся не при загрузке страницы, а после.
Я пробовал разные способы:
<script>
alert('XSS');
</script>

<script>
var str = "<script>alert('i am here');<\/script>";
    var newdiv = document.createElement('div');
    newdiv.innerHTML = str;
    document.body.appendChild(newdiv);
</script>

Много всего перепробовал, во всех случаях эти скрипты вставляются на месте пользовательского сообщения и все, они не выполняются.
В чем опасность нефильтрации? Приведите, пожалуйста, пример, что злоумышленник может ввести, чтоб выполнить скрипт.
  • Вопрос задан
  • 157 просмотров
Решения вопроса 3
AngReload
@AngReload
Кратко о себе

Скрипт срабатывает при наведении -
<a onmouseover=alert(document.cookie)>click me!</a>
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Зачем при наведении или клике, если есть событие onload например у картинки?

Можно даже вместо картинки букву написать, тогда сработает onerror.
Ответ написан
Комментировать
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
HTML теги вставляются и работают исправно, а вот javascript код не работает. Я так понимаю это потому, что данные этого компонента выводятся не при загрузке страницы, а после.

Ну так код может содержать логику запускаемую по наступлению события, например банальный click по body
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы