Comment pouvez-vous htmlencode en utilisant html agility pack?

html-agility-pack html-encode xss

Question

Quelqu'un a-t-il fait ça? Fondamentalement, je veux utiliser le code HTML en conservant les balises de base telles que h1, h2, em, etc. nettoie toutes les adresses non http dans img et les balises; et HTMLEncode toutes les autres balises.

Je suis coincé à la partie HTML Encoding. Je sais que pour supprimer un nœud vous faites un "node.ParentNode.RemoveChild (node);" où noeud est l'objet de la classe HtmlNode. Au lieu de supprimer le nœud cependant, je souhaite le HTMLEncode.

Réponse populaire

Vous devez supprimer le nœud représentant l'élément que vous ne voulez pas. Le code HTML codé devra alors être ajouté à nouveau en tant que nœud de texte.

Si vous ne voulez pas traiter les enfants des éléments que vous voulez jeter, vous devriez pouvoir simplement utiliser OuterHtml ... Quelque chose comme ça pourrait marcher:

node.AppendChild(new HtmlTextNode { Text = HttpUtility.HtmlEncode(nodeToDelete.OuterHtml) });



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi