Microsoft ha riportato una grave vulnerabilità delle applicazioni ASP.NET (dalla 1.1 alla 4.0).

Questo piccolo bug consente di poter effettuare il download di tutti i file presenti sul server e di effettuarne la decifratura

La soluzione da adottare per eliminare tale problema è la seguente:

1)      Impostare nel web.config  i customErrors a On

<customErrors mode="On" defaultRedirect="~/errore.aspx" />

2)      mettere nella root del website il file errore.aspx, avente nel load il seguente listato:

protected void Page_Load(object sender, EventArgs e)
     {
         byte[] delay = new byte[1];
         RandomNumberGenerator prng = new RNGCryptoServiceProvider();

         prng.GetBytes(delay);
         Thread.Sleep((int)delay[0]);

         IDisposable disposable = prng as IDisposable;
         if (disposable != null) { disposable.Dispose(); }

     }

Per verificare che tutto funzioni correttamente è sufficiente richiamare una pagina web non presente all’interno della nostra solutions.

Per ulteriori informazioni:

http://www.microsoft.com/technet/security/advisory/2416728.mspx

http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx

http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx