Привет.
Есть див, куда выводится например имя пользователя
<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 и других уязвимостей ?
Спасибо