Обобщена информация

Microsoft актуализацията MS11-100 граници максималния брой формуляри, файлове и JSON членове 1000 в HTTP заявка. Поради тази промяна приложения за ASP.NET отхвърлят заявките, които имат повече от 1000 от тези елементи. HTTP клиенти, които правят тези видове искания ще бъдат отхвърлени и съобщение за грешка ще се появи в уеб браузъра. Съобщение за грешка обикновено имат код за състояние на HTTP 500. Тази нова граница може да бъде конфигуриран на базата на приложение. Вижте раздела "Решение" за инструкции за конфигуриране.

Симптоми

ASP.NET заявки, които са много формуляри, файлове или товар JSON получавате съобщение за грешка отговор от сървъра. Регистрационния файл на сървъра има предупреждение запис с източник , който е определена версия на ASP.NET и Идентификатор на събитие на 1309. Събитията съдържа един от следните съобщения:

Съобщение 1:

Информация за приложението: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: ИД на процеса: 0001 процес име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение HttpException изключение: URL кодиран формуляра е невалиден. в System.Web.HttpRequest.FillInFormCollection () в System.Web.HttpRequest.get_Form () в System.Web.HttpRequest.get_HasForm () в System.Web.UI.Page.GetCollectionBasedOnMethod (Boolean dontReturnNull) в System.Web.UI.Page.DeterminePostBackMode () в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Съобщение 2:

Информация за приложението: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: ИД на процеса: 0001Process име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение InvalidOperationException изключение: операцията е невалидна поради текущото състояние на обекта. в System.Web.HttpRequest.FillInFilesCollection () в System.Web.HttpRequest.get_Files () в FileUpload.Page_Load (Object sender, EventArgs e) в System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o обект, обект t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в System.Web.UI.Control.LoadRecursive () в System.Web.UI.Page.ProcessRequestMain (булев includeStagesBeforeAsyncPoint

Съобщението:

Приложението информация: приложение домейн: / LM/W3SVC/1/корен/< домейн на приложения > ниво на доверие: среда приложение виртуален път: < VDIR път > приложение път: < приложение път > машина име: < име на машина > процес информация: Идентификатор на процес: 0001Process име: w3wp.exe акаунт име: информация за IIS APPPOOL\DefaultAppPool изключение: тип изключение: съобщение InvalidOperationException изключение: операцията е невалидна поради текущото състояние на обекта. в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 дълбочина) в System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 дълбочина) в System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (въвеждане на низ, Int32 depthLimit, JavaScriptSerializer програмата за сериализация) в System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer програма за сериализация, въвеждане на низ, тип, Int32 depthLimit) в System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (низ вход) в Failing.Page_Load (Object sender, EventArgs e) в System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, o обект, обект t, EventArgs e) в System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в System.Web.UI.Control.LoadRecursive () в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Регистрационният файл на IIS показва запис, подобно на следното:

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

Причина

Актуализация на сигурността на Microsoft сигурност бюлетин MS11-100 адреси промените по подразбиране максималния брой формуляри, файлове и JSON членове на ASP.NET ще приеме искане до 1000. Тази промяна е направена за справяне с уязвимостта отказ на услуга, Microsoft сигурност бюлетин MS11-100 документи.

Решение

Приложения, достигне това ограничение за формуляри или файлове, които могат да променят ASP.NET appSetting aspnet:MaxHttpCollectionKeys, както е показано по-долу в приложение на ASP.NET конфигурационния файл. Тази настройка е предназначена грешка съобщение 1 и грешка съобщение 2 от раздела "симптоми" раздел.

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

Забележка Ако използвате ASP.NET 1.1 в система, базирана на x86, настройката се коригира чрез добавяне на DWORD стойност в следния ключ на системния регистър:

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

Ако използвате ASP.NET 1.1 в система, базирана на x64, настройката се коригира чрез добавяне на DWORD стойност в следния ключ на системния регистър:

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

Приложения, натиснете този лимит за JSON вида полезни данни да модифицирате ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, както е показано по-долу в приложение на ASP.NET конфигурационния файл. Тази настройка е предназначена грешка съобщение 3 от раздела "симптоми" раздел.

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

Забележка Увеличаване на тази стойност над увеличаване на настройката по подразбиране чувствителност на вашия сървър за уязвимост отказ на услуга, която се обсъжда в бюлетина за сигурността MS11-100.

Препратки

За повече информация относно бюлетин за сигурността MS11-100 вижте следната статия на TechNet:

Microsoft Security Bulletin MS11-100 - критичниЗа допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2638420 MS11-100: Уязвимост в .NET Framework може да позволи повишаване на правата: 29 декември 2011 г.

Нуждаете се от още помощ?

Разширете уменията си

Преглед на обучението >

Получавайте първи новите функции

Присъединете се към Microsoft приобщени >

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?

Благодарим ви за обратната връзка!

×