Como todos sabemos por ahora, los ataques XSS son peligrosos y realmente fáciles de llevar a cabo . Varios marcos facilitan la codificación de HTML, como lo hace ASP.NET MVC:
<%= Html.Encode("string"); %>
Pero, ¿qué sucede cuando su cliente requiere que pueda cargar su contenido directamente desde un documento de Microsoft Word?
Este es el escenario: las personas pueden copiar y pegar contenido de Microsoft Word en un editor WYSIWYG (en este caso, tinyMCE ), y luego esa información se publica en una página web.
El sitio web es público, pero solo los miembros de esa organización tendrán acceso para publicar información en una página web.
¿Cómo manejo estos requisitos de manera segura? Actualmente no se realiza ninguna comprobación sobre lo que publica el cliente (ya que solo los usuarios 'confiables' pueden publicar), pero no estoy particularmente contento con eso y me gustaría bloquearlo aún más en caso de que se piratee una cuenta.
El único método conceptual que conozco que cumple con estos requisitos es incluir en la lista blanca las etiquetas HTML y dejarlas pasar . ¿Hay otra manera? Si no es así, ¿cuál es una forma segura de permitir que el usuario almacene la entrada en la base de datos en cualquier forma, pero solo la muestre correctamente codificada y sin etiquetas malas?
Pregunta relacionada
Prevención de secuencias de comandos de sitios cruzados (XSS)