Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Souhrn

Aktualizace zabezpečení společnosti Microsoft MS11-100 omezuje maximální počet klíčů formulářů, souborů a členů JSON v požadavku HTTP na 1000. Na základě této změny aplikace ASP.NET odmítají požadavky, které mají více než 1000 těchto elementů. Klienti HTTP, kteří zadávají takové požadavky, budou odmítnuti a ve webovém prohlížeči se zobrazí chybová zpráva. Tato chybová zpráva má obvykle stavový kód HTTP 500. Tento nový limit lze konfigurovat pro jednotlivé aplikace. Pokyny ke konfiguraci najdete v části Řešení.


Příznaky

Požadavek ASP.NET, který obsahuje mnoho klíčů formulářů, souborů nebo členů datové části JSON, obdrží od serveru chybovou odpověď. Protokol aplikací na serveru obsahuje položku upozornění se zdrojem, který je určitou verzí rozhraní ASP.NET, a identifikátorem události 1309. Protokol událostí obsahuje jednu z následujících zpráv: 


Zpráva 1:

Informace o aplikaci:
Doména aplikace: /LM/W3SVC/1/ROOT/<Doména aplikace>
Úroveň důvěryhodnosti: Střední
Virtuální cesta aplikace: <Cesta VDIR>
Cesta aplikace: <Cesta aplikace>
Název počítače: <Název počítače>
Informace o procesu:
ID procesu: 0001
Název procesu: w3wp.exe
Název účtu: IIS APPPOOL\DefaultAppPool

Informace o výjimce:
Typ výjimky: HttpException
Zpráva o výjimce: Data formuláře kódovaná v řetězci URL nejsou platná.
v System.Web.HttpRequest.FillInFormCollection()
v System.Web.HttpRequest.get_Form()
v System.Web.HttpRequest.get_HasForm()
v System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
v System.Web.UI.Page.DeterminePostBackMode()
v System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 


Zpráva 2:

Informace o aplikaci:
Doména aplikace: /LM/W3SVC/1/ROOT/<Doména aplikace>
Úroveň důvěryhodnosti: Střední
Virtuální cesta aplikace: <Cesta VDIR>
Cesta aplikace: <Cesta aplikace>
Název počítače: <Název počítače>

Informace o procesu:
ID procesu: 0001
Název procesu: w3wp.exe
Název účtu: IIS APPPOOL\DefaultAppPool

Informace o výjimce:
Typ výjimky: InvalidOperationException
Zpráva o výjimce: Operace není platná z důvodu aktuálního stavu objektu.
v System.Web.HttpRequest.FillInFilesCollection()
v System.Web.HttpRequest.get_Files()
v FileUpload.Page_Load(Object sender, EventArgs e)
v System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
v System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
v System.Web.UI.Control.OnLoad(EventArgs e)
v System.Web.UI.Control.LoadRecursive()
v System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint


Zpráva 3:

Informace o aplikaci:
Doména aplikace: /LM/W3SVC/1/ROOT/<Doména aplikace>
Úroveň důvěryhodnosti: Střední
Virtuální cesta aplikace: <Cesta VDIR>
Cesta aplikace: <Cesta aplikace>
Název počítače: <Název počítače>

Informace o procesu:
ID procesu: 0001
Název procesu: w3wp.exe
Název účtu: IIS APPPOOL\DefaultAppPool

Informace o výjimce:
Typ výjimky: InvalidOperationException
Zpráva o výjimce: Operace není platná z důvodu aktuálního stavu objektu.
v System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
v System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
v System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
v System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
v System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
v Failing.Page_Load(Object sender, EventArgs e)
v System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
v System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
v System.Web.UI.Control.OnLoad(EventArgs e)
v System.Web.UI.Control.LoadRecursive()
v System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



Soubor protokolu IIS obsahuje položku podobnou následující položce:

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




Příčina

Aktualizace zabezpečení společnosti Microsoft, na kterou je zaměřen bulletin MS11-100, mění výchozí maximální počet klíčů formulářů, souborů a členů JSON v požadavku, které rozhraní ASP.NET přijímá, na 1000. Tato změna byla provedena, aby se zabránilo chybě umožňující odepření služby, která je dokumentována v bulletinu zabezpečení společnosti Microsoft MS11-100.


Řešení

Aplikace, které dosáhnou tohoto limitu pro klíče formulářů nebo soubory, mohou upravit nastavení rozhraní ASP.NET appSetting aspnet:MaxHttpCollectionKeys v konfiguračním souboru aplikace ASP.NET, jak je uvedeno dále. Toto nastavení je určeno pro případy chybové zprávy 1 a chybové zprávy 2 z části Příznaky.

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



Poznámka: Používáte-li rozhraní ASP.NET 1.1 v systému pro platformu x86, nastavení je upraveno přidáním hodnoty DWORD do následujícího klíče registru:

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

Používáte-li rozhraní ASP.NET 1.1 v systému pro platformu x64, nastavení je upraveno přidáním hodnoty DWORD do následujícího klíče registru:

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




Aplikace, které dosáhnou tohoto limitu pro datové části JSON, mohou upravit nastavení rozhraní ASP.NET appSetting aspnet:MaxJsonDeserializerMembers v konfiguračním souboru aplikace ASP.NET, jak je uvedeno dále. Toto nastavení je určeno pro případy chybové zprávy 3 z části Příznaky.

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




Poznámka: Zvýšení této hodnoty nad výchozí nastavení zvyšuje náchylnost serveru k chybě umožňující odepření služby, která je probírána v bulletinu zabezpečení MS11-100.


Odkazy

Další informace o bulletinu zabezpečení MS11-100 naleznete v následujícím článku na webu TechNet:

Bulletin zabezpečení MS11-100 – Závažné Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2638420 MS11-100: Chyba zabezpečení rozhraní .NET Framework by mohla umožnit zvýšení oprávnění: 29. prosince 2011

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×