A számos űrlapkulccsal, fájllal vagy hasznos forgalommal rendelkező JSON-taggal rendelkező ASP.NET-kérések kivételhiba miatt meghiúsulnak

A cikk fordítása A cikk fordítása
Cikk azonosítója: 2661403 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

Összefoglaló

A Microsoft MS11-100 jelű biztonsági frissítése 1000-re korlátozza a HTTP-kérésekben található űrlapkulcsok, fájlok és JSON-tagok maximális számát. A változás miatt az ASP.NET-alkalmazások elutasítják a több mint 1000 ilyen elemet tartalmazó kéréseket. Az ilyen kéréseket létrehozó HTTP-ügyfeleket elutasítja a rendszer, és hibaüzenet jelenik meg a böngészőben. A hibaüzenet állapotkódja általában HTTP 500. Ez az új korlátozás általában alkalmazásonként külön állítható be. A beállításhoz a cikk megoldást ismertető szakaszában találhat útmutatást.


A jelenség

A számos űrlapkulccsal, fájllal vagy JSON-taggal rendelkező ASP.NET-kérések hibaüzenetet kapnak a kiszolgálótól. A kiszolgálón található alkalmazásnaplóban található egy Figyelmeztetés bejegyzés, amelynek a Forrása az ASP.NET egy adott verziója, az eseményazonosítója pedig 1309. Az eseménynapló a következő üzenetek egyikét tartalmazza:


1. üzenet:
Alkalmazás adatai:
Alkalmazás tartománya: /LM/W3SVC/1/ROOT/<Alkalmazás tartománya>
Megbízhatósági szint: Közepes
Alkalmazás virtuális elérési útja: <Virtuális könyvtár elérési útja>
Alkalmazás elérési útja: <Alkalmazás elérési útja>
Számítógép neve: <Számítógép neve>
Folyamat adatai:
Folyamat azonosítója: 0001
Folyamat neve: w3wp.exe
Fiók neve: IIS APPPOOL\DefaultAppPool

Kivétel adatai:
Kivétel típusa: HttpException
A kivételhez tartozó üzenet: Az URL-kódolású űrlapadatok érvénytelenek.
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


2. üzenet:
Alkalmazás adatai:
Alkalmazás tartománya: /LM/W3SVC/1/ROOT/<Alkalmazás tartománya>
Megbízhatósági szint: Közepes
Alkalmazás virtuális elérési útja: <Virtuális könyvtár elérési útja>
Alkalmazás elérési útja: <Alkalmazás elérési útja>
Számítógép neve: <Számítógép neve>

Folyamat adatai:
Folyamat azonosítója: 0001
Folyamat neve: w3wp.exe
Fiók neve: IIS APPPOOL\DefaultAppPool

Kivétel adatai:
Kivétel típusa: InvalidOperationException
A kivételhez tartozó üzenet: Az objektum jelenlegi állapota miatt a művelet érvénytelen.
at System.Web.HttpRequest.FillInFilesCollection()
at System.Web.HttpRequest.get_Files()
at FileUpload.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint

3. üzenet:
Alkalmazás adatai:
Alkalmazás tartománya: /LM/W3SVC/1/ROOT/<Alkalmazás tartománya>
Megbízhatósági szint: Közepes
Alkalmazás virtuális elérési útja: <Virtuális könyvtár elérési útja>
Alkalmazás elérési útja: <Alkalmazás elérési útja>
Számítógép neve: <Számítógép neve>

Folyamat adatai:
Folyamat azonosítója: 0001
Folyamat neve: w3wp.exe
Fiók neve: IIS APPPOOL\DefaultAppPool

Kivétel adatai:
Kivétel típusa: InvalidOperationException
A kivételhez tartozó üzenet: Az objektum jelenlegi állapota miatt a művelet érvénytelen.
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
at Failing.Page_Load(Object sender, EventArgs e)
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


Az IIS naplófájl a következőhöz hasonló bejegyzést jelenít meg:
2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




Oka

A Microsoft MS11-100 jelű biztonsági közleményben ismertetett biztonsági frissítése 1000-re módosítja az egyes kérésekben található űrlapkulcsok, fájlok és JSON-tagok az ASP.NET által elfogadható alapértelmezett maximális számát. A módosítás célja a Microsoft MS11-100 jelű biztonsági közleményében ismertetett szolgáltatásmegtagadási támadások elhárítása.


A megoldás

Az űrlapkulcsok és fájlok határértékét elérő alkalmazások az alábbi ASP.NET alkalmazáskonfigurációs fájlban látható módon módosíthatják az ASP.NET aspnet:MaxHttpCollectionKeys appSetting beállítását. A beállítás a jelenséget ismertető szakaszban található 1. és 2. hibaüzenetre szolgál megoldással.
<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="1000" />
</appSettings>
</configuration>


Megjegyzés: Amennyiben ASP.NET 1.1 keretrendszert x86-alapú rendszeren használja, a beállítást úgy módosíthatja, ha egy duplaszó értéket ad hozzá a következő beállításkulcshoz:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Amennyiben ASP.NET 1.1 keretrendszert x64-alapú rendszeren használja, a beállítást úgy módosíthatja, ha egy duplaszó értéket ad hozzá a következő beállításkulcshoz:

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



A JSON hasznos forgalomra vonatkozó határértékét elérő alkalmazások az alábbi ASP.NET-alkalmazáskonfigurációfájlban látható módon módosíthatják az ASP.NET aspnet:MaxJsonDeserializerMembers appSetting beállítását. A beállítás a jelenségeket ismertető szakaszban található 3. hibaüzenetre szolgál megoldással.
<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>



Megjegyzés: Ha ezt az értéket az alapérték fölé növeli, azzal jobban kiteszi a kiszolgálót az MS11-100 jelű biztonsági közleményben ismertetett szolgáltatásmegtagadási támadásoknak.


Hivatkozások

Az MS11-100 jelű biztonsági közleményről a következő TechNet-cikkben olvashat bővebben:
MS11-100 jelű Microsoft biztonsági közlemény – kritikus
További információt a Microsoft Tudásbázis következő cikkében talál:
2638420 MS11-100: A .NET-keretrendszer biztonsági rése jogosultság-kiterjesztést tehet lehetővé: 2011. december 29.
Megjegyzés: Ez egy „GYORS KÖZZÉTÉTELŰ” cikk, amelyet maga Microsoft támogatási csoportja készített. A benne fogalt információkat a jelentkező problémákra válaszul, az adott állapotukban biztosítjuk. Az anyagok a közzétételük gyorsaságából következően tartalmazhatnak sajtóhibákat, illetve külön értesítés nélkül bármikor átdolgozáson eshetnek át. További tudnivalók olvashatók a felhasználási feltételek között.

Tulajdonságok

Cikk azonosítója: 2661403 - Utolsó ellenőrzés: 2012. november 29. - Verziószám: 1.0
A cikkben található információ a következő(k)re vonatkozik:
  • Microsoft .NET Framework 4.0
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 2.0 Service Pack 1 (x86)
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1 Service Pack 1
  • Microsoft .NET-keretrendszer 1.1
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.0
  • Windows 7 Service Pack 1 a következő platformokon
    • Windows 7 Enterprise
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows 7 Home Premium
    • Windows 7 Home Basic
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows Server 2008 R2 Service Pack 1 a következő platformokon
    • Windows Server 2008 R2 Standard
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 Service Pack 2 a következő platformokon
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
  • Service Pack 2 szervizcsomag a Windows Vista rendszerhez a következő platformokon
    • 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 a következő platformokon
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Service Pack 3 a következő platformokon
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
Kulcsszavak: 
atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbsurveynew KB2661403
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com