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
Introduzione ai web component HTML
Scrivere selettori CSS più semplici ed efficienti con :is()
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
La gestione della riconnessione al server di Blazor in .NET 9
Gestire progetti .NET + React in .NET Aspire
Path addizionali per gli asset in ASP.NET Core MVC
Utilizzare l nesting nativo dei CSS
Integrare un servizio esterno con .NET Aspire
Supportare la crittografia di ASP.NET Core con Azure Container App
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Applicare un filtro per recuperare alcune issue di GitHub