Desinfectante HTML simple en Javascript

Estoy buscando un simple desinfectante HTML escrito en JavaScript. No es necesario que sea 100% seguro.

Estoy implementando Markdown y el editor de WMD Markdown (la rama maestra SO de github) en mi sitio web. El problema es que el HTML que se muestra en la vista previa en vivo no se filtra, como aquí en SO. Estoy buscando un desinfectante HTML simple / rápido escrito en JavaScript para poder filtrar el contenido de la ventana de vista previa.

No es necesario un analizador completo con protección XSS completa. No estoy enviando la salida al servidor. Estoy enviando el Markdown al servidor donde uso un desinfectante HTML completo y correcto antes de almacenar el resultado en la base de datos.

Google está siendo absolutamente inútil para mí. Acabo de recibir cientos de artículos (a menudo incorrectos) sobre cómo filtrar javascript del HTML generado por el usuario en todo tipo de lenguajes del lado del servidor.

ACTUALIZAR

Explicaré un poco mejor por qué necesito esto. Mi sitio web tiene un editor muy similar al de StackOverflow. Hay un área de texto para ingresar la sintaxis de MarkDown y una ventana de vista previa debajo que muestra cómo se verá después de haberla enviado.

Cuando el usuario envía algo, se envía al servidor en formato MarkDown. El servidor lo convierte a HTML y luego ejecuta un desinfectante HTML en él para limpiar el HTML. MarkDown permite HTML arbitrario, así que necesito limpiarlo. Por ejemplo, el usuario escribe algo como esto:

<script>alert('Boo!');</script>

El convertidor de MarkDown no lo toca ya que es HTML. El desinfectante HTML lo eliminará para que el elemento de script se haya ido.

Pero esto no es lo que sucede en la ventana de vista previa. La ventana de vista previa solo convierte MarkDown a HTML pero no la desinfecta. Por lo tanto, la ventana de vista previa tendrá un elemento de script. Esto significa que la ventana de vista previa es diferente de la representación real en el servidor.

Quiero arreglar esto, por lo que necesito un desinfectante de JavaScript HTML rápido y sucio. Algo simple con el elemento / atributo básico de listas negras y listas blancas servirá. No es necesario que XSS sea seguro porque la protección XSS se realiza mediante el desinfectante HTML del lado del servidor.

Esto es solo para asegurarse de que la ventana de vista previa coincida con la representación real del 99,99% del tiempo, lo cual es lo suficientemente bueno para mí.

¿Puede usted ayudar? ¡Gracias por adelantado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta