Désinfection de la saisie de l'utilisateur avant de l'ajouter au DOM en Javascript

Je suis en train d'écrire le JS pour une application de chat, je travaille sur mon temps libre, et j'ai besoin d'avoir HTML identificateurs qui changent en fonction de l'utilisateur des données soumises. C'est généralement quelque chose de conceptuellement assez fragile que je n'aurais même pas essayer, mais je ne me vois pas avoir trop le choix cette fois. Ce dont j'ai besoin pour faire est d'échapper à l'HTML id pour s'assurer qu'elle ne permettait pas de XSS ou de la rupture de HTML.

Voici le code:

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>';

Quel serait le meilleur moyen d'échapper à id pour éviter tout type de problème mentionné ci-dessus? Comme vous pouvez le voir, en ce moment je suis en utilisant le haut- escape() fonction, mais je ne suis pas sûr de savoir comment cela est censé être comparé à d'autres solutions de rechange. Je suis surtout utilisé pour la désinfection de l'entrée avant qu'il aille dans un nœud de texte, pas un identifiant lui-même.

  • Quelle est exactement la fonction de id?
  • l'id est maintenant de toute chaîne de caractères représentant un utilisateur. Je l'utilise pour se différencier des structures similaires de la page qui appartiennent à différents utilisateurs. par cette logique, MD5 ou base64 pourrait être un bon attendre pour le faire, je suppose. Il n'y a juste pas de trucs pour que.