Domanda

Continuo a ricevere gli errori come questo su uno dei miei siti. Si tende ad accadere in modo casuale durante il giorno qualsiasi per periodi nella notte, quando non mi aspetto utenti sul sito.

E 'sempre da diversi indirizzi IP

  

System.Web.HttpException: non valido   ViewState. a   System.Web.UI.Page.DecryptStringWithIV (String   s, IVType ivType) a   System.Web.UI.Page.DecryptString (String   s)

o

  

System.Security.Cryptography.CryptographicException:   L'imbottitura è valido e non può essere   rimosso. a   System.Security.Cryptography.RijndaelManagedTransform.DecryptData (Byte []   INPUTBUFFER, Int32 inputOffset, Int32   inputCount, Byte [] & outputBuffer,   Int32 OutputOffset, PaddingMode   paddingMode, booleano flast) a   System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock (Byte []   INPUTBUFFER, Int32 inputOffset, Int32   inputCount) a   System.Security.Cryptography.CryptoStream.FlushFinalBlock ()   a   System.Web.Configuration.MachineKeySection.EncryptOrDecryptData (booleano   fEncrypt, Byte [] buf, Byte modificatore di [],   Int32 iniziare, lunghezza Int32, IVType   ivType, booleano useValidationSymAlgo)   a   System.Web.UI.Page.DecryptStringWithIV (String   s, IVType ivType) a   System.Web.UI.Page.DecryptString (String   s)

Si verificano in questa pagina:

 ScriptResource.axd?d=VVe1O4rzLSI9hB5nRzBXZxUYTQz6ylDTL9djGR

Gli utenti del sito Ajax e gira su .NET 3.

E 'questo qualcuno cercando di introdursi nel sito? E 'un errore con il codice html sul sito?

Tutte le idee?

È stato utile?

Soluzione

Credo che questo errore è causato dal ViewState essere decifrato utilizzando un ViewStateUserKey out-of-date.

La rimozione di questi errori è un processo in due fasi:

  1. Assicurarsi di avere una chiave di convalida site-specific. È possibile utilizzare diverse risorse online per generare una per te, come ad esempio questo .
  2. Assicurarsi della pagina ViewStateUserKey è sempre coerente. Dalla documentazione MSDN:
  

L'impostazione della proprietà ViewStateUserKey può aiutare a prevenire gli attacchi contro l'applicazione da utenti malintenzionati. Fa questo che consente di assegnare un identificatore alla variabile sullo stato di visualizzazione per i singoli utenti in modo che essi non possono utilizzare la variabile per generare un attacco. È possibile impostare questa proprietà a qualsiasi valore stringa, come ad esempio ID sessione dell'utente o il nome autenticato dell'utente.

È possibile farlo impostando da soli (forse nella tua Pagina o Init di base della pagina):

if (Session["ViewStateUserKey"] == null)
{
    Session["ViewStateUserKey"] = new Guid().ToString();
}    
this.Page.ViewStateUserKey = Session["ViewStateUserKey"].ToString();

E no, io non credo che tu sei stato hackerato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top