Carlos Cifuentes
Migración de librerías AngularJS · sanitización de HTML

Migrar ngSanitize ($sanitize, ng-bind-html, linky) a Angular moderno

ngSanitize entregaba $sanitize, hacía seguro ng-bind-html e incluía el filtro linky, que convertía en enlaces las URLs de un texto.

Qué la reemplaza

OpciónCuándo elegirla
Built-in sanitization with [innerHTML]No necesita paquete: Angular sanitiza por defecto el HTML enlazado a innerHTML.
DOMPurifyCuando debes controlar la lista de etiquetas y atributos permitidos, por ejemplo para contenido de un editor enriquecido.
A small pipe for linkslinky no tiene equivalente integrado; escribe un pipe que arme los enlaces y deja que Angular sanitice el resultado.

Cómo migrarla

  1. Reemplaza ng-bind-html por [innerHTML]; Angular sanitiza el valor automáticamente.
  2. Revisa cada llamada a $sce.trustAsHtml: la mayoría debería pasar a ser un binding sanitizado normal, y solo el contenido que controlas por completo puede usar bypassSecurityTrustHtml.
  3. Reemplaza linky por un pipe propio y pruébalo con datos no confiables.

Cuidado con. Los dos sanitizadores no permiten exactamente el mismo HTML; Angular elimina los atributos style en línea, por ejemplo. Renderiza el contenido guardado con ambos y compara, y revisa la advertencia que Angular escribe en la consola en desarrollo cuando elimina algo.

Otras librerías

¿Planeas una migración o una plataforma de microfrontends?

En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.

Escríbeme por LinkedIn