Errore di ScriptResource: mi viene violato?
-
06-09-2019 - |
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?
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:
- Assicurarsi di avere una chiave di convalida site-specific. È possibile utilizzare diverse risorse online per generare una per te, come ad esempio questo .
- 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.