Súhrnné informácie
Microsoft aktualizácie zabezpečenia MS11-100 limity maximálny počet členov JSON formuláre a súbory 1000 žiadosti HTTP. Z dôvodu tejto zmeny ASP.NET aplikácií odmietnuť žiadosti, ktoré majú viac než 1000 týchto prvkov. HTTP klientom, aby tieto druhy žiadostí bude odmietnutý a chybové hlásenie sa zobrazí vo webovom prehľadávači. Chybové hlásenie sa zvyčajne majú kód stavu protokolu HTTP 500. Tento nový limit môže byť nakonfigurovaný na základe jednej aplikácie. Konfigurácia pokyny sú uvedené v časti "Riešenie".
Príznaky
ASP.NET požiadavky, ktoré majú veľa forme kľúče, súbory alebo JSON údajová časť zobrazuje chyba odpoveď zo servera. Do denníka aplikácie na serveri má položku upozornenie zdroj , ktorý je konkrétnu verziu ASP.NET a identifikácia z 1309. Denník udalostí obsahuje jedno z nasledujúcich hlásení:
Správa č. 1:
Informácie o aplikácii: aplikácia domény: / LM/W3SVC 1/ROOT/< doméne > dôvera: Stredná virtuálna cesta: < VDIR cesta > cesta: < aplikácia cesta > názov: < názov zariadenia > informácie: proces ID: 0001 názov procesu: w3wp.exe konto: IIS APPPOOL\DefaultAppPool ďalšie informácie: typ: HttpException výnimkou správy: dáta zakódované URL formulára nie je platný. na (System.Web.HttpRequest.FillInFormCollection) v System.Web.HttpRequest.get_Form () na (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 (logická includeStagesBeforeAsyncPoint, logická includeStagesAfterAsyncPoint)
Správa 2:
Informácie o aplikácii: aplikácia domény: / LM/W3SVC 1/ROOT/< doméne > dôvera: Stredná virtuálna cesta: < VDIR cesta > cesta: < aplikácia cesta > názov: < názov zariadenia > informácie: proces ID: 0001Process meno: w3wp.exe konto: IIS APPPOOL\DefaultAppPool ďalšie informácie: typ: InvalidOperationException výnimkou správy: operácia nie je platná pre aktuálny stav objektu. v System.Web.HttpRequest.FillInFilesCollection () na (System.Web.HttpRequest.get_Files) v FileUpload.Page_Load (Object sender, EventArgs e) v System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp objekt o t objekt, EventArgs e) na System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) v System.Web.UI.Control.OnLoad (EventArgs e) na (System.Web.UI.Control.LoadRecursive) v System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint
Správa 3:
Aplikácia informácie: aplikácia domény: / LM/W3SVC 1/ROOT/< doméne > dôvera: Stredná virtuálna cesta: < VDIR cesta > cesta: < aplikácia cesta > názov: < názov zariadenia > informácie: proces ID: 0001Process meno: w3wp.exe konto: IIS APPPOOL\DefaultAppPool ďalšie informácie: typ: InvalidOperationException výnimkou správy: operácia nie je platná pre aktuálny stav objektu. na System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary (Int32 hĺbka) na System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal (Int32 hĺbka) v System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize (String vstup, Int32 depthLimit, JavaScriptSerializer serializer) v System.Web.Script.Serialization.JavaScriptSerializer.Deserialize (JavaScriptSerializer serializer vstupný reťazec typ, Int32 depthLimit) v System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject (String vstup) v Failing.Page_Load (Object sender, EventArgs e) na System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp objekt o t objekt, EventArgs e) v System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e) v System.Web.UI.Control.OnLoad (EventArgs e) na (System.Web.UI.Control.LoadRecursive) v System.Web.UI.Page.ProcessRequestMain (logická includeStagesBeforeAsyncPoint, logická includeStagesAfterAsyncPoint)
Súbor denníka IIS zobrazuje položky podobné nasledovnému:
2011-01-01 00:00:00:: 1 POST /machine/default.aspx - 80 -:: 1 500 0 0 187
Príčina
Microsoft security update, security bulletin MS11-100 adries zmení predvolený maximálny počet formuláre a súbory JSON členov, ktorí ASP.NET prijme žiadosť o 1000. Táto zmena bola vykonaná na riešenie zraniteľnosť Denial of Service, že Microsoft security bulletin MS11-100 dokumentov.
Riešenie
Aplikácie, ktoré limit pre formuláre alebo súbory môžete upraviť ASP.NET appSetting aspnet:MaxHttpCollectionKeysuvedené nižšie v konfiguračnom súbore aplikácie ASP.NET. Toto nastavenie sa zaoberá chybové hlásenie 1 a chybové hlásenie 2 "Príznaky" sekcia.
<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>
Poznámka: Ak používate ASP.NET 1.1 v systéme x86, nastavuje pridať hodnotu DWORD nasledujúci kľúč databázy registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Ak používate ASP.NET 1.1 v systéme x64, nastavuje pridať hodnotu DWORD nasledujúci kľúč databázy registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Aplikácie, ktoré dosiahli tento limit JSON zaťaženie môžete upraviť ASP.NET appSetting aspnet:MaxJsonDeserializerMembersuvedené nižšie v konfiguračnom súbore aplikácie ASP.NET. Toto nastavenie sa zaoberá chybové hlásenie 3 "Príznaky" sekcia.
<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>
Poznámka: Zvýšenie tejto hodnoty nad predvolené nastavenie zvýšenia citlivosti servera na zraniteľnosť Denial of Service, ktorý je popísaný v bulletine MS11-100.
Odkazy
Ďalšie informácie o bulletine MS11-100, pozrite si článok TechNet:
Microsoft Security Bulletin MS11-100 - kritickéĎalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:
2638420 MS11-100: Nedostatočné zabezpečenie v .NET Framework môže umožniť eleváciu privilégií: 29. decembra 2011