Я пишу JS для приложения чата, над которым я работаю в свободное время, и мне нужно иметь идентификаторы HTML, которые меняются в соответствии с представленными пользователем данными. Это обычно что-то концептуально шаткий, что я бы даже не попытался, но на этот раз я не вижу, чтобы у меня был большой выбор. Мне нужно сделать это, чтобы избежать идентификатора HTML, чтобы убедиться, что он не позволит XSS или взломать HTML.
Здесь код:
var user_id = escape(id)
var txt = '<div class="chut">'+
'<div class="log" id="chut_'+user_id+'"></div>'+
'<textarea id="chut_'+user_id+'_msg"></textarea>'+
'<label for="chut_'+user_id+'_to">To:</label>'+
'<input type="text" id="chut_'+user_id+'_to" value='+user_id+' readonly="readonly" />'+
'<input type="submit" id="chut_'+user_id+'_send" value="Message"/>'+
'</div>';
Каким будет лучший способ избежать id
, чтобы избежать какой-либо проблемы, упомянутой выше? Как вы можете видеть, прямо сейчас я использую встроенную функцию escape()
, но я не уверен, насколько хорошо это должно сравниться с другими альтернативами. В основном я использую для дезинфекции входных данных до того, как он войдет в текст node, а не сам идентификатор.