Definizione di stato di visualizzazione
Lo stato di visualizzazione corrisponde alle informazioni che viaggiano in andata e ritorno tra le pagine WebForms (.aspx) di un'applicazione ASP.NET. I commenti HTML per il campo __VIEWSTATE hanno un aspetto analogo al seguente:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
Il testo di un pulsante rappresenta un esempio degli elementi che possono essere memorizzati nel campo __VIEWSTATE. Se un utente seleziona il pulsante, il gestore eventi Button_Click sarà in grado di estrarre il testo del pulsante dal campo relativo allo stato di visualizzazione. Per una panoramica più dettagliata relativa allo stato di visualizzazione in ASP.NET, consultare l'argomento Panoramica dello stato della visualizzazione di ASP.NET contenuto nel sito Web Microsoft Developer Network (MSDN).
Dal momento che il campo __VIEWSTATE comprende informazioni importanti che vengono utilizzate per ricostruire la pagina quando si effettua il postback, assicurarsi che un utente malintenzionato non riesca a manomettere il campo. Qualora un utente malintenzionato riuscisse a inviare un payload __VIEWSTATE dannoso, è possibile che possa indurre l'applicazione a eseguire un'azione che non avrebbe effettuato in una situazione differente.
Per evitare questo tipo di manomissione, il campo __VIEWSTATE viene protetto da un codice MAC (Message Authentication Code). ASP.NET convalida il codice MAC inviato insieme al payload __VIEWSTATE durante un evento di postback. La chiave utilizzata per calcolare il codice MAC viene indicata nell'elemento