Question

Au cours d'un test de charge récent, des étranges "Index hors limites d'exception" ont été détectés.

Trace de pile:

 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, Boolean useValidationSymAlgo)
   at System.Web.UI.Page.DecryptString(String s)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Nous n'utilisons pas de batterie de serveurs ni de cluster, et je n'utilise aucune cryptographie dans l'application.

Il semble que cela se produise dans les coulisses des classes .Net.

Je pense que cela a quelque chose à voir avec viewstate, mais je n'arrive pas à savoir pourquoi cela a été lancé.

Des idées?

Était-ce utile?

La solution

Si quelqu'un initie une publication, l'application commence à envoyer la publication avec tous les 500 Ko de Viewstate. À mi-chemin de la publication, l'utilisateur s'ennuie et clique sur autre chose. Le navigateur coupe la publication avec seulement une partie du viewstate. Le serveur génère une erreur indiquant que l'état d'affichage est bouché. Je suppose que ceci est une application 2.0 avec la fonctionnalité de chiffrement Viewstate activée. La solution consiste à gérer la taille du viewstate de manière plus agressive.

Les exceptions de validation d'événement sont plus susceptibles de se produire lorsqu'un utilisateur malveillant crée une réponse de publication personnalisée. Je ne pense donc pas que la validation des événements soit impliquée ici.

Autres conseils

Juste une supposition: avez-vous désactivé EventValidation sur le site? On dirait que quelque chose essaie de créer une publication manuelle ou d’insérer des données directement dans les données de publication de la demande http, sans que la valeur correcte du champ Viewstate ne soit calculée. Cela entraîne l'échec spectaculaire du déchiffrement.

Avec EventValidation activé, vous aurez une exception même s’ils calculent tout correctement, mais au moins c’est une exception significative.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top