Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Rezumat

Microsoft security update MS11-100 limite numărul maxim de formular chei, fișierele și JSON membri la 1000 într-o solicitare de HTTP. Din cauza această modificare, aplicații ASP.NET respinge solicitările care au mai mult de 1000 de aceste elemente. Clienții HTTP care face aceste tipuri de solicitări va fi refuzat și va apărea un mesaj de eroare în browserul web. Mesajul de eroare, de obicei, va avea un cod de stare HTTP 500. Această limită noi pot fi configurate în regim per aplicație. Consultați secțiunea "Rezolvare" pentru instrucțiuni de configurare.

Simptome

ASP.NET solicitările care au multe chei de formular, fișiere sau componentă JSON primi un răspuns de eroare de la server. Jurnalul de aplicații pe serverul are o intrare de avertizare cu o sursă de o anumită versiune de ASP.NET, și un ID de eveniment de 1309. Jurnalul de evenimente conține unul dintre următoarele mesaje:

Mesaj 1:

Aplicație informații: domeniu de aplicare: / LM/W3SVC/1/ROOT/< App domeniu > nivel de încredere: mediu aplicație calea virtuală: < cale virtual > Application calea: nume < cale aplicație > mașină: < nume mașină > procesul de informaţii: ID-ul procesului: 0001 nume de proces: w3wp.exe nume cont: informații excepții de APPPOOL\DefaultAppPool IIS: Exception type: mesaj HttpException excepție: date formular URL codificat nu este validă. la System.Web.HttpRequest.FillInFormCollection () la (System.Web.HttpRequest.get_Form) la (System.Web.HttpRequest.get_HasForm) la System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) la (System.Web.UI.Page.DeterminePostBackMode) la System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Mesaj 2:

Aplicație informații: domeniu de aplicare: / LM/W3SVC/1/ROOT/< App domeniu > nivel de încredere: mediu aplicație calea virtuală: < cale virtual > Application calea: nume < cale aplicație > mașină: < nume mașină > procesul de informaţii: ID-ul procesului: 0001Process nume: w3wp.exe nume cont: informații excepții de APPPOOL\DefaultAppPool IIS: Exception type: mesaj InvalidOperationException excepție: operațiunea nu este validă din cauza starea curentă a obiectului. la System.Web.HttpRequest.FillInFilesCollection () la (System.Web.HttpRequest.get_Files) la FileUpload.Page_Load (Object sender, EventArgs e) la System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, obiectul t, EventArgs e) la System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) la System.Web.UI.Control.OnLoad (EventArgs e) la (System.Web.UI.Control.LoadRecursive) la System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint

Mesaj 3:

Domeniu de informații: aplicație aplicație: / LM/W3SVC/1/ROOT/< App domeniu > nivel de încredere: mediu aplicație calea virtuală: < cale virtual > Application calea: nume < cale aplicație > mașină: < nume mașină > procesul de informaţii: ID-ul procesului: 0001Process nume: w3wp.exe nume cont: informații excepții de APPPOOL\DefaultAppPool IIS: Exception type: mesaj InvalidOperationException excepție: operațiunea nu este validă din cauza starea curentă a obiectului. la System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 adâncime) la System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 adâncime) la System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (String intrare, Int32 depthLimit, JavaScriptSerializer serializatorului) la System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serializatorului șir de intrare, tip, Int32 depthLimit) la System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (String intrare) la Failing.Page_Load (Object sender, EventArgs e) la System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, obiectul t, EventArgs e) la System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) la System.Web.UI.Control.OnLoad (EventArgs e) la (System.Web.UI.Control.LoadRecursive) la System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Fișierul jurnal IIS arată o intrare care seamănă cu următorul:

2011-01-01 00:00:00:: 1 POST /machine/default.aspx - 80 -:: 1-500 0 0 187

Cauză

Microsoft security update că buletinul de securitate MS11-100 adrese modifică implicit numărul maxim de formular chei, fișierele și membrii JSON care ASP.NET va accepta o cerere de la 1.000. Această modificare s-a făcut pentru a trata vulnerabilitatea Denial of Service că Microsoft security buletinului MS11-100 documente.

Rezolvare

Aplicațiile care ajunge la această limită pentru cheile de formular sau fișiere pot modifica ASP.NET appSetting aspnet:MaxHttpCollectionKeys, așa cum se arată mai jos în fișier de configurare a unei aplicații ASP.NET. Această setare se adresează mesaj de eroare 1 și eroare mesajul 2 din secțiunea "simptome" secțiune.

<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>

Notă Dacă utilizați ASP.NET 1.1 pe un sistem bazat pe x86, setarea se reglează adăugând o valoare DWORD la următoarea cheie de registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

Dacă utilizați ASP.NET 1.1 pe un sistem bazat pe x64, setarea se reglează adăugând o valoare DWORD la următoarea cheie de registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

Aplicațiile care atins această limită pentru JSON componente pot modifica ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, așa cum se arată mai jos în fișier de configurare a unei aplicații ASP.NET. Această setare se adresează eroare mesaj 3 din "Simptome" secțiune.

<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>

Notă Mărirea această valoare creşte de setarea implicită de mai sus vulnerabilitatea serverul vulnerabilitatea Denial of Service care este discutată în buletinul de securitate MS11-100.

Referințe

Pentru mai multe informații despre buletinul de securitate MS11-100, consultaţi următorul articol TechNet:

Microsoft Security buletinul MS11-100 - criticePentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:

2638420 MS11-100: O vulnerabilitate în .NET Framework poate permite sporirea privilegiilor: 29 decembrie 2011

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×