Si bien puede poner HTML en su base de datos y mostrarlo directamente sin el paso de codificación normal que usaría para generar texto en HTML, no lo recomendaría a menos que confíe plenamente en todos los que ingresarán contenido.
Me refiero a confiar no solo en seguridad (porque cualquiera que pueda insertar HTML en su página podrá hacerse cargo del uso de otros usuarios del sitio a través de script-injection), sino también competencia: solo se necesita uno Unclosed <div>
u otro error similar de marcado para manguera completamente el diseño de la página.
Una posibilidad es examinar los envíos de HTML entrantes utilizando un ordenado HTML fuerte y un "purificador" para permitir solo el marcado conocido seguro. Este es un trabajo complicado, por lo tanto, use una biblioteca existente para hacerlo. Alternativamente, y tal vez más útil, puede proporcionar un lenguaje de marcado sencillo. Por ejemplo *italic*, **bold**, http://www.example.com/
->cursiva, negrita, http://www.example.com/.
Existen muchos de estos pequeños lenguajes de marcado. El único Stack Overflow utiliza, que estoy escribiendo en este cuadro en este momento, se llama Markdown.
(Markdown no es mi favorito, principalmente porque en la implementación habitual también permite contenido HTML dentro del marcado, lo que es un poco feo y causa problemas aquí cuando la gente intenta hablar sobre etiquetas sin ponerlas en `-quotes.Pero es un ejemplo popular; hay muchos más: bbcode, reST, Textile, etc ...)
Tenga cuidado con el ataque XSS. – Joshua