ASP.NET pieprasījumu, kas ir daudz formu atslēgas, faili vai JSON payload dalībniekiem neizdodas ar izņēmumu

Kopsavilkums

Microsoft drošības atjauninājuma drošības atjauninājumu MS11-100 ierobežojumus formu atslēgas, failiem un JSON dalībnieku maksimālais skaits 1000 HTTP pieprasījumu. Šīs izmaiņas, jo ASP.NET lietojumprogrammas noraidīt pieprasījumi, kas ir vairāk nekā 1000 šos elementus. HTTP klientiem, kas padara šāda veida pieprasījumi tiks liegta un tīmekļa pārlūkprogrammā tiks parādīts kļūdas ziņojums. Kļūdas ziņojums parasti ir HTTP 500 statusa kodu. Šo jauno ierobežojumu var konfigurēt, pamatojoties uz programmu. Lūdzu, skatiet sadaļā "Risinājums" konfigurācijas instrukcijas.

Simptomi

ASP.NET pieprasījumi, kas ir daudz formu atslēgas, faili vai JSON payload saņemat kļūdas ziņojumu no servera. Servera lietojumprogrammu žurnālā ir brīdinājuma ieraksta avots , kas ir īpaši ASP.NET versiju un 1309 notikuma ID. Notikumu žurnālā ir kāds no šiem ziņojumiem:

1. ziņojums:

Lietojumprogrammas informāciju: lietojumprogrammu domēnā: / LM/W3SVC/1/ROOT/< lietojumprogrammu domēnā > uzticamības līmenis: vidējs lietojumprogrammu virtuālo ceļu: < VDIR ceļš > lietojumprogrammas ceļš: < App ceļš > datora nosaukums: < datora nosaukums > apstrādā informāciju: procesa ID: 0001 procesa nosaukums: w3wp.exe konta nosaukums: IIS APPPOOL\DefaultAppPool izņēmuma informācija: izņēmuma tips: HttpException izņēmuma ziņojums: URL kodēta veidlapas dati nav derīgi. pie pie pie pie System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) pie (System.Web.HttpRequest.get_HasForm) (System.Web.HttpRequest.get_Form) (System.Web.HttpRequest.FillInFormCollection) Pēc System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) (System.Web.UI.Page.DeterminePostBackMode)

2. ziņojumu:

Lietojumprogrammas informāciju: lietojumprogrammu domēnā: / LM/W3SVC/1/ROOT/< lietojumprogrammu domēnā > uzticamības līmenis: vidējs lietojumprogrammu virtuālo ceļu: < VDIR ceļš > lietojumprogrammas ceļš: < App ceļš > datora nosaukums: < datora nosaukums > apstrādā informāciju: procesa ID: 0001Process nosaukums: w3wp.exe konta nosaukums: IIS APPPOOL\DefaultAppPool izņēmuma informācija: izņēmuma tips: InvalidOperationException izņēmuma ziņojums: darbība nav derīga, jo objekta pašreizējo stāvokli. pie pie pie FileUpload.Page_Load (Object sender, EventArgs e) System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr PP o objektu, objektu t, EventArgs e) (System.Web.HttpRequest.get_Files) (System.Web.HttpRequest.FillInFilesCollection) System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) pie System.Web.UI.Control.OnLoad (EventArgs e) pie System.Web.UI.Control.LoadRecursive (pie System.Web.UI.Page.ProcessRequestMain (Boolean) includeStagesBeforeAsyncPoint

3. ziņojums:

Lietojumprogrammas informāciju: lietojumprogrammu domēnā: / LM/W3SVC/1/ROOT/< lietojumprogrammu domēnā > uzticamības līmenis: vides lietojumprogrammu virtuālo ceļu: < VDIR ceļš > lietojumprogrammas ceļš: < App ceļš > datora nosaukums: < datora nosaukums > apstrādā informāciju: Process ID: 0001Process nosaukums: w3wp.exe konta nosaukums: IIS APPPOOL\DefaultAppPool izņēmuma informācija: izņēmuma tips: InvalidOperationException izņēmuma ziņojums: darbība nav derīga, jo objekta pašreizējo stāvokli. pēc System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 dziļums) pie System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 dziļums) pie System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (String izmantošana, Int32 depthLimit, JavaScriptSerializer serializer) System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serializer, String ievades tips, Int32 depthLimit) pie System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (virknes ievade) pie Failing.Page_Load (Object sender, EventArgs e) System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr PP o objektu, objektu t, EventArgs e) System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) System.Web.UI.Control.OnLoad (EventArgs e) pie Pēc System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) (System.Web.UI.Control.LoadRecursive)

IIS žurnālfailā ir ieraksts, kas ir līdzīgs šim:

1:00:00: 00 ziņu 2011-01-01 - 80 - /machine/default.aspx: 1-500 0 0 187

Cēlonis

Microsoft drošības atjauninājums drošības biļetenu drošības atjauninājumu MS11-100 adreses maina noklusējuma maksimālais skaits veidlapas atslēgas failus un JSON dalībnieki, kurus ASP.NET pieņemt pieprasījumu 1000. Šī izmaiņa tika veikta risināt Denial of Service ievainojamība Microsoft drošības biļetens drošības atjauninājumu MS11-100 dokumentus.

Risinājums

Lietojumprogrammas, kas sasniedz šo ierobežojumu formu taustiņi vai failu var modificēt ASP.NET appSetting aspnet:MaxHttpCollectionKeysšādi ASP.NET lietojumprogrammas konfigurācijas fails. Šis iestatījums attiecas uz kļūdu ziņojumu 1 un kļūdu ziņojumu 2 "Simptomi" sadaļā.

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

Piezīme. Ja izmantojat ASP.NET 1.1 sistēma x86, iestatījums tiek pielāgots, pievienojot DWORD vērtību šajā reģistra atslēgā:

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

Ja izmantojat ASP.NET 1.1 x64 sistēma, iestatījums tiek pielāgots, pievienojot DWORD vērtību šajā reģistra atslēgā:

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

Lietojumprogrammas, kas šo ierobežojumu JSON lietderīgās slodzes rezultāts var modificēt ASP.NET appSetting aspnet:MaxJsonDeserializerMembersšādi ASP.NET lietojumprogrammas konfigurācijas fails. Šis iestatījums novērš kļūdas ziņojumu "Simptomi" 3 sadaļā.

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

Piezīme. Palielinot šo vērtību virs noklusējuma iestatījums palielina servera jutīgumu pret pakalpojumatteices ievainojamību, kas ir aprakstīts drošības biļetenu drošības atjauninājumu MS11-100.

Atsauces

Lai iegūtu papildinformāciju par drošības atjauninājumu MS11-100 drošības biļetenu, skatiet TechNet raksta:

Microsoft drošības biļetens drošības atjauninājumu MS11-100 - kritisko Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:

2638420 Drošības biļetens MS11-100: .NET Framework ievainojamība var atļaut paplašināt tiesības: 2011. gada 29. decembris

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka jums varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta speciālistiem.

×