Nello script #250 abbiamo visto come prendere un url e metterlo in binding. In quel caso abbiamo preso l'url e lo abbiamo trasformato in un oggetto che Angular può mettere in binding senza però fare alcun controllo sui dati contenuti nell'URL. Se quell'URL proviene dall'input di un utente o da un'altra fonte non controllata, siamo passibili di un attacco di injection dove l'utente può iniettare codice malevolo nella nostra applicazione.
Per evitare questi problemi, possiamo usare il metodo sanitize della classe DomSanitizer che encoda la stringa in modo da eliminare ogni possibile attacco di injection. Questo metodo accetta il tipo di controllo da effettuare (detto contesto) e il valore da controllare come si vede nel prossimo codice.
const s = this.sanitizer.sanitize(SecurityContext.URL, valueToCheck);
In questo caso, la variabile valueToCheck contiene l'url da verificare e il contesto specificaappunto che il tipo di controllo da effettuare è quello su un url. Il contesto è un enum di tipo SecurityContext che contiene i valori URL, SCRIPT, STYLE, HTML, RESOURCE_URL.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare lo spread operator con i collection initializer in C#
Recuperare l'ultima versione di una release di GitHub
Utilizzare un service principal per accedere a Azure Container Registry
Criptare la comunicazione con mTLS in Azure Container Apps
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Usare le navigation property in QuickGrid di Blazor
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Creare un'applicazione React e configurare Tailwind CSS
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Gestire il colore CSS con HWB