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
Recuperare App Service cancellati su Azure
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Configurare e gestire sidecar container in Azure App Service
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Ordinare randomicamente una lista in C#
Proteggere le risorse Azure con private link e private endpoints
Rendere le variabili read-only in una pipeline di Azure DevOps
Utilizzare i variable font nel CSS
Definire stili a livello di libreria in Angular
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Combinare Container Queries e Media Queries
Eseguire i worklow di GitHub su runner potenziati
I più letti di oggi
- Creare agenti facilmente con Azure AI Agent Service
- Loggare le query più lente con Entity Framework
- Rendere i propri workflow e le GitHub Action utilizzate più sicure
- Disabilitare le run concorrenti di una pipeline di Azure DevOps
- Gestione degli eventi nei Web component HTML
- Fornire parametri ad un Web component HTML
- Introduzione ai web component HTML