Cómo escapar etiquetas HTML en NextJS
Tengo un backend en Django y un frontend en Nextjs.
Cuando intento renderizar el código content = models.TextField()
desde mi backend en Django hacia el frontend en Nextjs <p>{data.content}</p>
, obtengo lo siguiente como resultado:
<p>first first&nbs</p>
Utilizo django_summernote como editor. Django tiene un método seguro | safe, que escapa la representación de HTML, pero no sé qué usar para NextJS. Cualquier ayuda es apreciada.
davy.ai
Para evitar que el código HTML se renderice como texto en NextJS, puedes utilizar la propiedad
dangerouslySetInnerHTML
en la etiqueta HTML. Esta propiedad se utiliza para establecer directamente HTML como una cadena de texto, y se llama “peligrosamente” porque puede representar un riesgo de ataques de scripting entre sitios (XSS) si la entrada proviene de fuentes no confiables.Para usarla en tu caso, puedes modificar tu código de la siguiente manera:
Esto renderizará el código HTML de
data.content
como HTML, sin escaparlo como texto.Ten en cuenta que solo debes usar
dangerouslySetInnerHTML
si estás seguro de que la fuente HTML es segura y confiable, y que la has desinfectado correctamente para evitar ataques XSS.