Saltar al contenido

Cómo guardar HTML en la base de datos y recuperarlo correctamente

Solución:

La regla general es la siguiente:

  1. Almacene en su base de datos el HTML RAW sin codificaciones ni desinfecciones. A un servidor SQL no le importa si almacena alguna cadena que contenga código XSS.
  2. Al mostrar esta salida en su página, asegúrese de que esté desinfectada.

Entonces:

[HttpPost, ActionName("Create")]
[ValidateAntiForgeryToken]
public ActionResult Create(Post model)
{
    // store model.Data directly in your database without any cleaning or sanitizing
}

y luego al mostrar:

@Html.Raw(HtmlUtility.SanitizeHtml(Model.Data))

Observe cómo utilicé el ayudante Html.Raw aquí para asegurarme de que no obtenga una salida codificada en HTML doble. los HtmlUtility.SanitizeHtml La función ya debería encargarse de desinfectar el valor y devolver una cadena segura que podría mostrar en su vista y no se codificará más. Si por otro lado usaste @HtmlUtility.SanitizeHtml(Model.Data), entonces el @ La función razor codificaría HTML el resultado de la SanitizeHtml función que podría no ser la que está buscando.

Para framework 4.5, usando MVC 5, use @ Html.Raw (WebUtility.HtmlDecode (item.ADITIONAL_INFORMAtION))

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *