Estoy buscando usar WMD en mi proyecto en lugar de mi RadEditor existente. He estado leyendo algunas publicaciones sobre cómo almacenar y recuperar los datos, y quiero asegurarme de que tengo el concepto correcto antes de continuar.¿Cuál es la mejor manera de almacenar entradas/rebajas de WMD en el servidor SQL y visualizarlas más tarde?
Si mi investigación es correcta, esto es lo que debería hacer.
- debería almacenar los datos del editor dos veces (una vez como HTML y una vez como Markdown)
- que debería ejecutar el código HTML a través de un Whitelist antes de guardarla.
- Debo ejecutar el código HTML a través de AntiXSS en el camino de salida (antes de mostrar)
- Debo utilizar los datos de marcado SOLAMENTE para volver a llenar Markdown para su edición.
¿Alguien puede confirmar o negar si esto es correcto, y también añadir cualquier entrada útil sobre el tema?
Referencias
Reformat my code: Sanitize Html
StackOverflow: how do you store the markdown using wmd in asp net
StackOverflow: sanitize html before storing in the db or before rendering antixss library
StackOverflow: store html entities in database or convert when retrieved
Dos preguntas ... 1) ¿Por qué desinfectar la salida y no la entrada? y 2) ¿Cuáles son estas "mejores prácticas" de MVC? ¿Hay algún artículo para leer? –
@rock Se desinfecta la producción porque no se quiere destruir lo que el usuario puso en la base de datos. Al desinfectar la producción se preserva el texto original en caso de que alguna vez decida cambiar lo que está utilizando para desinfectar la entrada. Respeta las mejores prácticas, consulte "ASP.NET MVC 1.0" por Rob Conery, Scott Hanselman, Phil Haack y Scott Guthrie. Además, el blog de Phil , http://haacked.com es un gran recurso para los elementos MVC. –
¿Así que no está preocupado si un usuario envía cosas como javascript o basura maliciosa a su base de datos? Además, no desinfecta una vez en la carga del sistema de entrada más bajo sobre desinfectando en cada salida? –