Javascript assainissement: Le plus sûr moyen d'insérer possible XSS chaîne html

Actuellement, je suis en utilisant cette méthode avec jQuery solution, pour nettoyer la chaîne d'éventuelles attaques XSS.

sanitize:function(str) {
    //return htmlentities(str,'ENT_QUOTES');
    return $('<div></div>').text(str).html().replace(/"/gi,'&quot;').replace(/'/gi,'&apos;');   
}

Mais j'ai le sentiment que ce n'est pas assez sûr. Dois-je raté quelque chose?

J'ai essayé htmlentities de phpjs projet ici:
http://phpjs.org/functions/htmlentities:425/

Mais il est un peu buggé et retourne quelques autres symboles spéciaux. C'est peut-être une ancienne version?

Par exemple:

htmlentities('test"','ENT_QUOTES');

Produit:

test&amp;quot;

Mais devrait être:

test&quot;

Comment gérez-vous cette via javascript?

Comment avez-vous l'intention d'utiliser le "aseptisé" chaîne de caractères?
Insérez dans le document html à la bce en tant que texte. Comme href="aseptisé" ou src="aseptisé", ou <div>aseptisé</div>
D'où l'insert est déclenchée? Voulez-vous insérer la chaîne dans un déjà ouvert la page dynamiquement à l'aide de Javascript, ou dans le générés par le serveur document HTML à l'aide de PHP?
Oui dynamiquement à l'aide de javascript. La chaîne vient de la source non fiable.
L'utilisation de la Caja html_sanitize.js. stackoverflow.com/questions/12253686/...

OriginalL'auteur Somebody | 2012-07-02