Задать вопрос
jessepinkman010101
@jessepinkman010101
Варю синий код

Считается ли это xss (или другой) уязвимостью?

Привет.
Есть див, куда выводится например имя пользователя

<div class="user_name">Ivan</div>

Есть инпут в котором мы можем поменять имя пользователя и на странице этот див должен изменится.
<input type="text" class="user-name-input">

такой ajax запрос
$(document).on('click', '.change-user-name', function(){

    var user_name = $('.user-name-input').val();
  
    $.ajax({
        url: '/core/action/path/file.php',
        type: 'POST',
        data: {
            user_name: user_name 
        },
        dataType: 'json',
        success: (data)=> {
            $('.user_name').html(user_name );
        }
    });
});


В теле success я в div вставляю то, что получил с инпута, а не то что пришло с бэка. на это есть причины, пример тут упрощенный, а расписать все не получится. Так вот, если пользователь напишет в инпут например <script>alert('h');</script> то оно выполнится. Разумеется если обновить страницу, то в див имя загружается с бэка в очищенном виде и js уже не обрабатывает. Можно для вставки использовать не .html(); а .text(), но в моем случае нужно именно html.

Есть ли тут риск xss и других уязвимостей ?

Спасибо
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Попробуйте так:
$('.user_name')[0].innerHTML = user_name;
По идее это не будет приводить к выполнению скрипта.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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