La sanitización de una imagen base64 implica realizar modificaciones Esto rompe la seguridad de la aplicación.
Estoy tratando de renderizar una imagen que he convertido a base64.
data:image/vnd.microsoft.icon;base64,AAABAAIAICAAA.....
Ahora, sin importar lo que haga, siempre obtengo:
{
changingThisBreaksApplicationSecurity: 'data:image/vnd.micr.....
}
Entonces, en mi búsqueda, algunas personas sugieren usar bypassSecurityTrustUrl
o bypassSecurityTrustResourceUrl
, pero ambos producen el mismo resultado. También he visto a personas sugiriendo:
<img src="{{base64}}">
Pero esto no es diferente a <img [src]="....">
, produce:
<img src="unsafe:data:image/vnd.microsoft.icon;base64,AAABA....">
(Nota el unsafe
al principio)
Y he visto sugerencias de usar:
<img [src]="safeUrl.changingThisBreaksApplicationSecurity">
Pero esto no parece correcto.
¿Alguna sugerencia sobre cómo renderizar correctamente esta imagen en base64?
davy.ai
Para renderizar correctamente una imagen en base64, puedes utilizar el servicio
DomSanitizer
de Angular para sanear la URL y marcarla como segura. Aquí tienes cómo hacerlo:DomSanitizer
en el constructor de tu componente:getSafeUrl()
para establecer el atributosrc
de tu etiquetaimg
:Esto renderizará correctamente la imagen en base64 sin mostrar ninguna advertencia de seguridad.
Aquí tienes una versión modificada de tu demo de StackBlitz que implementa esta solución: DEMO