imperugo.tostring.it - ASP.NET MVC 2 Preview 2
AutoEncode in ASP.NET 4.0
Sinceramente mi ero chiesto perchè non esistesse in ASP.NET un qualcosa per effettuare l’encode di una stringa nel markup senza ricorrere ogni volta all’apposito metodo della classe HttpUtility; ovviamente questo non è un grandissimo problema, ma allunga i tempi di scrittura del codice e, IMHO, aggiunge verbosità allo stesso.
Per comodità mi sono realizzato un extension method per le stringhe che si occupa di effettuare l’encode/decode sia per l’html che per l’url, facilitando un po’ la scrittura del codice, come mostrato di seguito:
<!-- metodo classico --> <%= Server.HtmlEncode(myVar) %> <!-- con extension method --> <%= myVar.EncodeHtml() %>
In ASP.NET 4.0 esisterà qualcosa di ancor più comodo ed immediato - lo annuncia Phil Haac qui - ossia una nuova “sintassi” per i blocchi di codice nelle pagine aspx (ovviemente vale anche per i controlli, view, ecc) che effettuerà per noi l’encode in HTML: infatti oltre al binding ed al response ci sarà Html Encoding, come mostrato di seguito:
<%: myVar %>
Sarebbe bello poter specificare un provider per cambiare il sistema di encoding, e magari anche sostituire l’HtmlEncode della classe HttpUtility con quello della Anti-XSS.
The comments for this post are closed.
-
#2 da http://imperugo.tostring.it/blog/post/primissime-impressioni-su-visual-studio-2010-beta-2
imperugo.tostring.it - Primissime impressioni su Visual Studio 2010 Beta 2
-
#3 da http://imperugo.tostring.it/blog/post/utilizzare-antixss-library-autoencode-di-aspnet-mvc2-con-il-net-framework-4
imperugo.tostring.it - Utilizzare l’AntiXss Library per l’AutoEncode di ASP.NET / MVC2 con il .NET Framework 4.0
#1 da Andrea Colaci Wednesday September 2009 alle 11:26
"Sarebbe bello poter specificare un provider per cambiare il sistema di encoding, e magari anche sostituire l’HtmlEncode della classe HttpUtility con quello della Anti-XSS." Quoto in pieno, anche se l'anti-xss offre encoding specifico per html, attributi, javascript... a questo punto, utilizzando l'auto encoding, bisognerebbe "capire" anche qual'è la destinazione dell'output (html, attributi etc...)
#2 da Ugo Lattanzi Wednesday September 2009 alle 11:57
Ciao Andrea, verissimo ciò che dici, ma già il poter specificare il metodo da invocare per l'HTML encode sarebbe un buon passo in avanti. Tanto se decidi di utilizzare l'HtmlEncode in in un attributo o javascript hai comunque già sbagliato e la nuova sintassi non ti aiuterebbe. Quindi per tutte quelle casistiche in cui devi avere un encode differente devi invocare un metodo a mano (come si fa ad oggi); ed è anche giusto così dato che questi casi sono in numero inferiore. Ciauz