Quando in Angular utilizziamo oggetti HTML che accettano un URL (come un tag iframe, o un tag img) capita di dover impostarne l'attributo src in binding con un valore proveniente da una configurazione, da un servizio o altro ancora. Mettere in binding la stringa dell'URL con l'attributo causa un errore di sicurezza in Angular. Per aggirare il problema dobbiamo validare la stringa farla considerare valida dal motore di Angular per poi inserirla in un oggetto SafeUrl.
Angular offre un servizio già pronto per processare la stringa: DomSanitizer. Questo servizio offre il metodo bypassSecurityTrustResourceUrl che permette di creare un oggetto SafeUrl partendo dalla stringa senza eseguire nessun controllo. Questo metodo è comodo quando la stringa proviene da una fonte sicura, ma espone ad attacchi di XSS se la stringa proviene dall'input di un utente.
export class HmiComponent implements OnInit { bindingUrl: SafeUrl; constructor(private sanitizer: DomSanitizer) { } ngOnInit() { this.bindingUrl = this.sanitizer.bypassSecurityTrustResourceUrl('http://www.google.it'/]); } }
Una volta ottenuto l'oggeto SafeUrl, possiamo metterlo in binding con l'attributo src come qualunque altro valore.
<iframe [src]="bindingUrl"></iframe>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare file per il download da Blazor WebAssembly
Eseguire operazioni sui blob con Azure Storage Actions
Eseguire una GroupBy per entity in Entity Framework
Evitare il flickering dei componenti nel prerender di Blazor 8
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Utilizzare la libreria Benchmark.NET per misurare le performance
Installare le Web App site extension tramite una pipeline di Azure DevOps
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Implementare il throttling in ASP.NET Core
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Migrare una service connection a workload identity federation in Azure DevOps
Gestire liste di tipi semplici con Entity Framework Core
I più letti di oggi
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Definire stili a livello di libreria in Angular
- .NET Conference Italia 2023 - Milano e Online
- Come EF 8 ha ottimizzato le query che usano il metodo Contains
- Ottimizzazione dei block template in Angular 17