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
Creare una libreria CSS universale: Nav menu
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Collegare applicazioni server e client con .NET Aspire
Migliorare l'organizzazione delle risorse con Azure Policy
Change tracking e composition in Entity Framework
Proteggere le risorse Azure con private link e private endpoints
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Gestire progetti .NET + React in .NET Aspire
Aggiornare a .NET 9 su Azure App Service
Eseguire script pre e post esecuzione di un workflow di GitHub
Abilitare automaticamente il force push di un gruppo su Azure DevOps