Загальні відомості
Microsoft із безпеки оновлення MS11-100 обмежень максимальної кількості форми розділів, файли та JSON членів 1000 в запит HTTP. Через цю зміну у застосунки ASP.NET відхилення запитів, що мають більше 1000 ці елементи. HTTP клієнти, які такі запити, буде відмовлено, а також у веб-браузері відображається повідомлення про помилку. Повідомлення про помилку, як правило, мають код стану в HTTP 500. Нові обмеження можна налаштувати на основі окремих програм. Див. в розділі "Заходи усунення" вказівки.
Ознаки
ASP.NET запити, що є багато форм розділів, файлів або навантаження JSON, отримати відповідь про помилку на сервері. Журнал застосунку на сервері, має попередження про запис, з джерелом певної версії ASP.NET і Кодом події 1309. Журнал подій, містить одне з таких повідомлень:
Повідомлення 1:
Застосування інформації: застосування домену: / LM/W3SVC/1/КОРЕНЯ/< App домен > рівня в довірчих: віртуальний шлях середній-застосунків: < VDIR шлях > застосування шлях: ім'я < App шлях > машини: < Machine Name > процес інформації: Ідентифікатор процесу: 0001 ім'я для процесу: w3wp.exe обліковий запис: IIS APPPOOL\DefaultAppPool виняток інформація: тип винятку: повідомлення про виняток для HttpException: неправильний файл кодування даних. на System.Web.HttpRequest.FillInFormCollection (-) на (System.Web.HttpRequest.get_Form), в System.Web.HttpRequest.get_HasForm (), на System.Web.UI.Page.GetCollectionBasedOnMethod (логічний вираз dontReturnNull) на System.Web.UI.Page.DeterminePostBackMode (), на System.Web.UI.Page.ProcessRequestMain (логічний вираз includeStagesBeforeAsyncPoint, логічний вираз includeStagesAfterAsyncPoint)
Повідомлення 2:
Застосування інформації: застосування домену: / LM/W3SVC/1/КОРЕНЯ/< App домен > рівня в довірчих: віртуальний шлях середній-застосунків: < VDIR шлях > застосування шлях: ім'я < App шлях > машини: < Machine Name > процес інформації: Ідентифікатор процесу: 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
Повідомлення 3:
Застосування інформації: застосування домену: / LM/W3SVC/1/КОРЕНЯ/< App домен > рівня в довірчих: віртуальний шлях середній-застосунків: < VDIR шлях > застосування шлях: ім'я < App шлях > машини: < Machine Name > процес інформації: Ідентифікатор процесу: 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 (логічний вираз includeStagesBeforeAsyncPoint, логічний вираз includeStagesAfterAsyncPoint)
Файл журналу IIS показує, запис матиме приблизно такого вигляду:
ПОВІДОМЛЕННЯ з 00:00:00:: 1 2011-01-01-/machine/default.aspx - 80 -:: 1 500 та 0 0 187
Причина
Microsoft security оновлення, що безпеки бюлетень безпеки MS11-100-адреси, зміни за промовчанням максимальну кількість форми розділів, файли та членів JSON, яке відповідає на запит до 1000 ASP.NET. Цю зміну було внесено для усунення вразливості відмова в обслуговуванні, що безпеки корпорації Майкрософт, Вісник 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 бюлетень безпеки MS11-100 - критичнийЩоб отримати докладні відомості, клацніть номер цієї статті бази знань Microsoft:
2638420 MS11-100: Дефект у .NET Framework дозволяє несанкціоноване розширення прав: 29 грудня 2011 року.