Taikoma
.NET Framework 3.5 Service Pack 1 Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 Service Pack 2 Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business 64-bit Edition Microsoft Windows Server 2003 Service Pack 2 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Service Pack 3 Microsoft Windows XP Home Edition Microsoft Windows XP Professional

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.