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
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Utilizzare database e servizi con gli add-on di Container App
Generare token per autenicarsi sulle API di GitHub
Sfruttare al massimo i topic space di Event Grid MQTT
Utilizzare i primary constructor di C# per inizializzare le proprietà
Miglioramenti nelle performance di Angular 16
Usare le variabili per personalizzare gli stili CSS
Usare un KeyedService di default in ASP.NET Core 8
Specificare il versioning nel path degli URL in ASP.NET Web API
.NET Conference Italia 2023
Evitare (o ridurre) il repo-jacking sulle GitHub Actions