2009-06-01 15 views
7

Sigo recibiendo errores como este en uno de mis sitios. Suele suceder aleatoriamente a lo largo del día cualquiera durante períodos de la noche en los que no esperaría usuarios en el sitio.Error de ScriptResource: ¿estoy siendo pirateado?

Es siempre desde diferentes direcciones IP

System.Web.HttpException: Invalid viewstate. at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.UI.Page.DecryptString(String s)

o

System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo) at System.Web.UI.Page.DecryptStringWithIV(String s, IVType ivType) at System.Web.UI.Page.DecryptString(String s)

Ocurren en esta página:

ScriptResource.axd?d=VVe1O4rzLSI9hB5nRzBXZxUYTQz6ylDTL9djGR 

El sitio de usuarios Ajax y se ejecuta en .NET 3.

I ¿Es alguien que intenta hackear el sitio? ¿Es un error con el html en el sitio?

¿Alguna idea?

Respuesta

5

Creo que este error se debe a que su ViewState se descifra usando una ViewStateUserKey desactualizada.

La eliminación de estos errores es un proceso de dos pasos:

  1. Asegúrese de que tiene una clave de validación de sitio específico. Puede usar varios recursos en línea para generar uno para usted, como this one.
  2. Asegúrese de que la ViewStateUserKey de la página siempre sea coherente. A partir de la documentación de MSDN:

Setting the ViewStateUserKey property can help you prevent attacks on your application from malicious users. It does this by allowing you to assign an identifier to the view-state variable for individual users so that they cannot use the variable to generate an attack. You can set this property to any string value, such as the user's session ID or the user's authenticated name.

Usted puede hacer esto mediante el establecimiento de usted mismo (quizás en su página o evento de inicialización de base de Página):

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

Y no, yo no te creo están siendo pirateados

+0

Bueno, eso es una bendición, gracias por su respuesta, voy a intentarlo. ¿Esto generaría un error en el navegador de los usuarios? – Paul

+0

Supongo que debe funcionar, aunque nunca he podido replicarlo. He visto muchos registros con este error. –

Cuestiones relacionadas