ASP.NET 4.5 incorpora direttamente l'AntiXSS Library, una library creata da Microsoft e che consente di eseguire l'encoding di testo che arriva dall'utente, per gli usi più opportuni.
A differenza dell'implementazione predefinita, questa library è in grado di gestire le differenze di encoding presenti quando si vuole utilizzare un valore che proviene dall'utente in HTML, attributi HTML, CSS, JavaScript e così via.
Di default, per compatibilità con le versioni precedenti, il nuovo encoder non viene utilizzato direttamente nei progetti migrati alla nuova versione, ma è necessario modificare il web.config:
<httpRuntime encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Questo attributo sfrutta la possibilità di cambiare il tipo di encoder utilizzato dai normali metodi a cui siamo abituati, come HttpUtility.HtmlEncode, senza dover cambiare il codice, sfruttando l'ormai noto provider model.
Quando viene attivata questa feature (disponibile in automatico con i nuovi progetti), ASP.NET 4.5 è in grado di incorporare in automatico le funzionalità di AntiXSS Library di seguito riportate:
- HtmlEncode, HtmlFormUrlEncode, and HtmlAttributeEncode
- XmlAttributeEncode and XmlEncode
- UrlEncode and UrlPathEncode
- CssEncode
Questa modifica consente di dare maggior sicurezza alle applicazioni, senza dover far altro che cambiare il tipo di encoder utilizzato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un webhook in Azure DevOps
Ordine e importanza per @layer in CSS
Proteggere le risorse Azure con private link e private endpoints
Utilizzare Model as a Service su Microsoft Azure
Usare lo spread operator con i collection initializer in C#
Generare un hash con SHA-3 in .NET
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Cambiare la chiave di partizionamento di Azure Cosmos DB
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare un service principal per accedere a Azure Container Registry