asp.net - HTML Sanitizer para.NET
html-sanitizing (5)
Estoy comenzando un proyecto que será público al usar asp.net mvc. Sé que hay cerca de mil millones de sanitizadores php, python y ruby html, pero ¿alguien tiene algunos consejos para algo bueno en .net? ¿Cuáles son sus experiencias con lo que hay por ahí? Sé que stackoverflow es un sitio hecho en asp.net que permite HTML libre, ¿qué usa?
Aquí hay uno construido por microsoft. http://wpl.codeplex.com/
var cleanHtml = Sanitizer.GetSafeHtml(unsafeHtml);
hay ac # versión aquí
HtmlSanitizer
Fuente: https://github.com/mganss/HtmlSanitizer
Un desinfectante bastante robusto. Comprende y puede limpiar estilos en línea, pero no tiene un analizador que pueda tratar con bloques <style>, por lo que los elimina. Ciertamente está hasta y probablemente más allá del nivel en el que se encontraba AntiXSS de Microsoft, antes de que fuera abandonado.
En base a su pregunta, tengo las siguientes sugerencias:
- Desea permitir el formato libre de HTML, por lo que necesita una solución para poder especificar un conjunto de etiquetas, atributos y / o clases CSS que están permitidos.
- Al permitir HTML de forma libre, es probable que también tenga que lidiar con HTML mal formado porque los usuarios cometen errores (deliberados o no). Por lo tanto, necesita una solución basada en un analizador tolerante como Html Agility Pack .
- Le conviene tomar un enfoque de lista blanca porque un desinfectante de lista negra no lo protege de ninguna nueva especificación HTML. Además, es muy difícil garantizar que una lista negra cubra todos los casos, en primer lugar, debido al tamaño de la especificación HTML.
Me enfrenté al mismo problema y construí HtmlRuleSanitizer, que es un sanitizador de HTML basado en reglas de listado blancas sobre el Html Agility Pack.