Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Santrauka

"Microsoft" saugos naujinimą MS11-100 apribojimai didžiausią skaičių formos raktus, failus ir JSON nariai 1000 kaip HTTP užklausa. Dėl šio pakeitimo, ASP.NET programos atmesti užklausas, yra daugiau nei 1000 iš šių elementų. HTTP klientams, kurie atlikti šiuos prašymus bus uždrausta, o klaidos pranešimas bus rodomas žiniatinklio naršyklėje. Klaidos pranešimas paprastai turės yra HTTP 500 būsenos kodas. Šis naujas, kuris gali būti konfigūruojamas kiekvienos programos pagrindu. Rasite skyriuje "Sprendimas" konfigūravimo instrukcijos.

Požymiai

ASP.NET užklausos, kurios turi daug formos raktus, failus arba JSON srautą gauna klaidos atsaką iš serverio. Taikomosios programos žurnale serveryje yra įspėjimas įrašo šaltinis , yra konkrečios ASP.NET versijos, ir įvykio ID – 1309. Įvykių žurnale yra viena iš šių pranešimų:

1 pranešimas:

Programos informacija: programos domeno: / LM/W3SVC/1/ROOT/< programos domene > patikimumo lygis: vidutinio programos virtualaus kelias: < VDIR kelias > programos kelias: < programėlių kelias > mašinos pavadinimas: < kompiuterio vardas > proceso informacija: procesas ID: 0001 proceso pavadinimas: w3wp.exe paskyros pavadinimas: IIS APPPOOL\DefaultAppPool išimčių informacijos: išimties tipas: HttpException išimties pranešimas: The kodavimą formos duomenys negalioja. tuo metu (System.Web.HttpRequest.get_Form) (System.Web.HttpRequest.get_HasForm) į System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) į ne (System.Web.HttpRequest.FillInFormCollection) (System.Web.UI.Page.DeterminePostBackMode) į System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

2 pranešimas:

Programos informacija: programos domeno: / LM/W3SVC/1/ROOT/< programos domene > patikimumo lygis: vidutinio programos virtualaus kelias: < VDIR kelias > programos kelias: < programėlių kelias > mašinos pavadinimas: < kompiuterio vardas > proceso informacija: procesas ID: 0001Process pavadinimas: w3wp.exe paskyros pavadinimas: IIS APPPOOL\DefaultAppPool išimčių informacijos: išimties tipas: InvalidOperationException išimties pranešimas: operacija neleistina dėl esamą objektą. tuo metu (System.Web.HttpRequest.get_Files) ne FileUpload.Page_Load (objektas siųsti, EventArgs e) į System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o objektas, objekto t, EventArgs e) į (System.Web.HttpRequest.FillInFilesCollection) System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objektas siųsti, EventArgs e) į System.Web.UI.Control.OnLoad (EventArgs e) į į System.Web.UI.Page.ProcessRequestMain (Boolean (System.Web.UI.Control.LoadRecursive) includeStagesBeforeAsyncPoint

3 pranešimas:

Programos informacija: programos domeno: / LM/W3SVC/1/ROOT/< programos domene > patikimumo lygis: vidutinio programos virtualaus kelias: < VDIR kelias > programos kelias: < programėlių kelias > mašinos pavadinimas: < kompiuterio vardas > proceso informacija: procesas ID: 0001Process pavadinimas: w3wp.exe paskyros pavadinimas: IIS APPPOOL\DefaultAppPool išimčių informacijos: išimties tipas: InvalidOperationException išimties pranešimas: operacija neleistina dėl esamą objektą. ne System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 gylis) į System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 gylis) į Į System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (eilutės įvesties, Int32 depthLimit, JavaScriptSerializer serializer) serializer, eilutės įvesties, tipus, Int32 depthLimit) į System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (eilutės įvesties) į ne Failing.Page_Load (objektas siųsti, EventArgs e) Ne System.Web.Util.CalliEventHandlerDelegateProxy.Callback (objektas siųsti, EventArgs e) į System.Web.UI.Control.OnLoad (EventArgs e) į System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o objektas, objekto t, EventArgs e) (System.Web.UI.Control.LoadRecursive) į System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

IIS žurnalo faile rodoma įrašą, panašų į šį:

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

Priežastis

"Microsoft" saugos naujinimą, kad saugos biuletenį MS11-100 adresų pakeičia numatytąjį didžiausią skaičių formos raktus, failus ir JSON narių, ASP.NET turi priimti prašymą iki 1000. Šis keitimas buvo atliktas spręsti Denial of Service pažeidžiamumas, kad "Microsoft" saugos biuletenis MS11-100 dokumentus.

Sprendimas

Programų, kurios šią ribą formos raktų ar failus galite modifikuoti ASP.NET appSetting aspnet:MaxHttpCollectionKeys, kaip parodyta toliau ASP.NET programos konfigūracijos failą. Šis parametras skirtas klaidos pranešimas 1 ir klaidos pranešimas 2 iš "Požymiai" skyriuje.

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

Pastaba Jei naudojate ASP.NET 1.1 x86 sistemoje, parametras nustatomas iš pridėti reikšmę DWORD, į šį registro raktą:

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

Jei naudojate ASP.NET 1.1 x64 64 sistemoje, parametras nustatomas iš pridėti reikšmę DWORD, į šį registro raktą:

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

Programų, kurios šiuos apribojimus, JSON srautai keisti ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, kaip parodyta toliau ASP.NET programos konfigūracijos failą. Šis parametras skirtas klaidos pranešimą 3 iš "Požymiai" skyriuje.

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

Pastaba Padidinti šią reikšmę virš numatytasis parametras padidina jūsų serverio jautrumas Denial of Service pažeidžiamumas, kuris aptariamas saugos biuletenį MS11-100.

Nuorodos

Daugiau informacijos apie saugos biuletenis MS11-100, ieškokite TechNet straipsnis:

"Microsoft" saugos biuletenį MS11-100 - kritinis Norėdami gauti daugiau informacijos, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite „Microsoft Knowledge Base“ žinių bazės straipsnį:

2638420 MS11-100: .NET Framework pažeidžiamumas gali sudaryti didesnių teisių suteikimas: 2011 m. gruodžio 29

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×