Applies To.NET Framework 3.5 Service Pack 1 Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 Service Pack 2 Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 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 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Service Pack 3 Microsoft Windows XP Home Edition Microsoft Windows XP Professional

Загальні відомості

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 року.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.