La libreria Anti Cross Site Scripting versione 1.5 è stata appena rilasciata in RTM e disponibile al download dall'ACE Team di Microsoft.
Ho avuto l'onore (e il permesso dall'ACE Team, thanks Kevin!) di mostrare in anteprima per WPC la libreria nella sessione "Realizzare applicazioni sicure con .NET", e mi preme dare qui lo stesso messaggio di attenzione che ho dato in sessione.
Questa è una libreria di solo encoding e NON evita tutte le tipologie di attacco.
Chiunque programmi web application e processi degli input utente che vengano mostrati sulla pagina web dovrebbe scaricarsi questa libreria, leggere attentamente come usarla e provare gli esempi. L'attacco Cross Site Scripting (XSS) è estremamente infido e dannoso, e proteggersi non è facile. Con questa libreria il compito diventa un po' più semplice.
La versione 1.5 porta tante novità rispetto alla versione precedente, tutte elencate da Kevin Lam nel suo post. In particolare è stata marcata con gli attributi AllowPartiallyTrustedCodeAttribute e SecurityTransparent per renderla utilizzabile anche dai siti che girano con basso privilegio (vedi Aruba ad esempio).
Ho discusso molto con Kevin l'attacco basato sulla keyword "expression(...)" per ricalcolare le dynamic properties. In sostanza la libreria esegue l'encoding dei caratteri a rischio come i tag <Script> o virgole, punti, trattini, etc. tipicamente sfruttati in attacchi cross site scripting secondo diverse regular expression che dipendono dalla destinazione (attributo html, tag html, javascript, xml, etc.) ma non è una libreria che filtra delle keyword come expression.
Perciò è fondamentale che venga anche filtrata separatamente la keyword expression in aggiunta ai controlli di questa libreria di encoding.