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
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Generare file per il download da Blazor WebAssembly
Implementare il throttling in ASP.NET Core
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire query verso tipi non mappati in Entity Framework Core
Utilizzare le collection expression in C#
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Gestire undefined e partial nelle reactive forms di Angular
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Usare il versioning con i controller di ASP.NET Core Web API