Base de datos para contenido: ¿OK para almacenar HTML?

La pregunta básica es: ¿es seguro almacenar HTML en una base de datos si restrinjo quién puede enviarlo?

Tengo una pregunta bastante simple. Proporciono videos tutoriales y otro contenido. Sin pasar meses escribiendo un analizador de BBCode adecuado, necesitaría almacenar el HTML para que pueda verse exactamente como quiero cuando lo tome de la base de datos.

Básicamente planeo almacenar toda la información en la base de datos sobre una serie de tutoriales y cada episodio. Me gustaría tener algún formato para las descripciones de ambos para poder agregar varios párrafos, listas ordenadas y desordenadas, enlaces a los recursos necesarios, etc.

Estoy usando PHP y creando mi propia base de datos. Estoy usando phpMyAdmin para almacenar la información en la tabla en este momento. Usaré un usuario con derechos de solo lectura cuando saque la información en el código PHP.

¿Cuál es la mejor manera de hacer esto? ¡Gracias!

Al igual que otros, han señalado que no hay nada peligroso en almacenar HTML en la base de datos. Pero cuando lo visualice, necesita saber que el HTML es seguro. Al ver que eres el único que está editando el HTML, no veo ningún problema.

Sin embargo, no almacenaría HTML en absoluto. Si todo lo que necesita son encabezados, párrafos, listas, enlaces, imágenes, etc. Yo diría que Markdown encaja perfectamente. El beneficio con Markdown es que se parece al texto normal (es decir, puede enviar sus artículos como correos electrónicos o guardarlos como documentos de texto), ocupa mucho menos espacio que HTML y no tiene que cambiarlo una vez que HTML se actualiza.

http://michelf.ca/projects/php-markdown/

Desde el punto de vista de la seguridad, no es menos seguro almacenar su HTML en una base de datos que almacenarlo en otro lugar, si usted es el único autor de ese HTML. Pero, de nuevo, si otras personas pueden crear HTML en su sitio web, entonces no importa dónde lo almacene, solo cómo lo desinfectará y cómo y dónde lo mostrará.

Ahora bien, si es o no una forma eficiente de almacenar HTML es una cuestión completamente diferente. Si yo fuera tú, usaría un sistema de plantillas decente y almacenaría HTML en los archivos.

Almacenar código HTML está bien. Pero si no proviene de una fuente de confianza, debe verificarlo y permitir un subconjunto de marcado seguro únicamente. La biblioteca HTML Tidy te ayudará con eso.

Además, debe contar con un cambio futuro en el diseño del sitio web, por lo tanto, no use demasiado marcado, solo tags básicas. Para que se vea como lo desea, use reglas CSS globales y clases denominadas semánticamente en el marcado.

Pero aún mejor es utilizar Markdown u otra syntax tipo wiki. Hay buenos editores JS para Markdown con vista previa en tiempo real (como la que está aquí en Stackowerflow), y puede evitar el HTML por completo.