@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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы