¿Cómo htmlencode usando el paquete de agilidad html?

html-agility-pack html-encode xss

Pregunta

¿Alguien ha hecho esto? Básicamente, quiero usar el html manteniendo etiquetas básicas como h1, h2, em, etc; limpie todas las direcciones no http en las etiquetas img y a; y HTMLEncode todas las demás etiquetas.

Estoy atascado en la parte de codificación HTML. Sé que para eliminar un nodo haces un "node.ParentNode.RemoveChild (node)"; donde nodo es el objeto de la clase HtmlNode. Sin embargo, en lugar de eliminar el nodo, quiero HTMLEncode.

Respuesta popular

Deberá eliminar el nodo que representa el elemento que no desea. El HTML codificado tendría que volver a agregarse como un nodo de texto.

Si no desea procesar los elementos secundarios de los elementos que desea tirar, debería poder usar OuterHtml ... algo como esto podría funcionar:

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué