Select the product you need help with
Żądanie ASP.NET zawierające wiele kluczy formularzy, plików lub elementów ładunku JSON kończy się niepowodzeniem z powodu wyjątkuNumer ID artykułu: 2661403 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady. StreszczenieAktualizacja zabezpieczeń firmy Microsoft MS11-100 ogranicza maksymalną liczbę kluczy formularzy, plików i elementów JSON w żądaniu HTTP do 1000. Z powodu tej zmiany aplikacje ASP.NET odrzucają żądania zawierające więcej niż 1000 tych elementów. Tego rodzaju żądania wysyłane przez klienta HTTP zostają odrzucone, a w przeglądarce sieci Web pojawia się komunikat o błędzie. Komunikat o błędzie ma zwykle kod stanu HTTP 500. Ten nowy limit można skonfigurować dla poszczególnych aplikacji. Instrukcje dotyczące konfiguracji zawarto w sekcji „Rozwiązanie”. SymptomyNa żądania ASP.NET zawierające wiele kluczy formularzy, plików lub elementów JSON serwer odpowiada komunikatem o błędzie. W dzienniku aplikacji na serwerze znajduje się wpis ostrzeżenia, w którym jako Źródło wskazana jest konkretna wersja programu ASP.NET, a zdarzenie ma identyfikator 1309. Dziennik zdarzeń zawiera jeden z następujących komunikatów: Komunikat 1: Informacje o aplikacji: Domena aplikacji: /LM/W3SVC/1/ROOT/<domena_aplikacji> Poziom zaufania: Średni Ścieżka wirtualna aplikacji: <ścieżka_VDIR> Ścieżka aplikacji: <ścieżka_aplikacji> Nazwa komputera: <nazwa_komputera> Informacje o procesie: Identyfikator procesu: 0001 Nazwa procesu: w3wp.exe Nazwa konta: IIS APPPOOL\DefaultAppPool Informacje o wyjątku: Typ wyjątku: HttpException Komunikat o wyjątku: Dane formularza kodowane za pomocą adresu URL są nieprawidłowe. w System.Web.HttpRequest.FillInFormCollection() w System.Web.HttpRequest.get_Form() w System.Web.HttpRequest.get_HasForm() w System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) w System.Web.UI.Page.DeterminePostBackMode() w System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) Komunikat 2: Informacje o aplikacji: Domena aplikacji: /LM/W3SVC/1/ROOT/<domena_aplikacji> Poziom zaufania: Średni Ścieżka wirtualna aplikacji: <ścieżka_VDIR> Ścieżka aplikacji: <ścieżka_aplikacji> Nazwa komputera: <nazwa_komputera> Informacje o procesie: Identyfikator procesu: 0001 Nazwa procesu: w3wp.exe Nazwa konta: IIS APPPOOL\DefaultAppPool Informacje o wyjątku: Typ wyjątku: InvalidOperationException Komunikat o wyjątku: Ze względu na bieżący stan obiektu operacja jest nieprawidłowa. w System.Web.HttpRequest.FillInFilesCollection() w System.Web.HttpRequest.get_Files() w FileUpload.Page_Load(Object sender, EventArgs e) w System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) w System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) w System.Web.UI.Control.OnLoad(EventArgs e) w System.Web.UI.Control.LoadRecursive() w System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint Komunikat 3: Informacje o aplikacji: Domena aplikacji: /LM/W3SVC/1/ROOT/<domena_aplikacji> Poziom zaufania: Średni Ścieżka wirtualna aplikacji: <ścieżka_VDIR> Ścieżka aplikacji: <ścieżka_aplikacji> Nazwa komputera: <nazwa_komputera> Informacje o procesie: Identyfikator procesu: 0001 Nazwa procesu: w3wp.exe Nazwa konta: IIS APPPOOL\DefaultAppPool Informacje o wyjątku: Typ wyjątku: InvalidOperationException Komunikat o wyjątku: Ze względu na bieżący stan obiektu operacja jest nieprawidłowa. w System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth) w System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth) w System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer) w System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) w System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input) w Failing.Page_Load(Object sender, EventArgs e) w System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) w System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) w System.Web.UI.Control.OnLoad(EventArgs e) w System.Web.UI.Control.LoadRecursive() w System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) W dzienniku programu IIS znajduje się wpis podobny do następującego: 2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187 PrzyczynaAktualizacja zabezpieczeń firmy Microsoft opisana w biuletynie zabezpieczeń MS11-100 zmienia domyślną maksymalną liczbę kluczy formularzy, plików i elementów JSON akceptowaną w żądaniu przez program ASP.NET na 1000. Tę zmianę wprowadzono w celu wyeliminowania luki w zabezpieczeniach umożliwiającej atak typu „odmowa usługi” udokumentowanej w biuletynie zabezpieczeń firmy Microsoft MS11-100. RozwiązanieW przypadku aplikacji, które osiągają ten limit dla kluczy formularzy lub plików, można zmodyfikować pozycję programu ASP.NET appSetting aspnet:MaxHttpCollectionKeys, jak pokazano poniżej, w pliku konfiguracji aplikacji ASP.NET. To ustawienie rozwiązuje problem z komunikatami o błędach 1 i 2 z sekcji „Symptomy”. Uwaga W razie używania wersji ASP.NET 1.1 w systemie opartym na procesorach x86 to ustawienie dopasowuje się, dodając wartość DWORD do następującego klucza rejestru: W przypadku aplikacji, które osiągają ten limit dla ładunków JSON, można zmodyfikować pozycję programu ASP.NET appSetting aspnet:MaxJsonDeserializerMembers, jak pokazano poniżej, w pliku konfiguracji aplikacji ASP.NET. To ustawienie rozwiązuje problem z komunikatem o błędzie 3 z sekcji „Symptomy”. Uwaga Zwiększenie powyższej wartości ponad ustawienie domyślne zwiększa podatność serwera na zagrożenie atakiem typu „odmowa usługi” z wykorzystaniem luki w zabezpieczeniach omówionej w biuletynie zabezpieczeń MS11-100. Materiały referencyjneAby uzyskać więcej informacji o biuletynie zabezpieczeń MS11-100, zobacz następujący artykuł w witrynie TechNet: Biuletyn zabezpieczeń MS11-100 firmy Microsoft — krytyczne Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
(http://technet.microsoft.com/pl-pl/security/bulletin/ms11-100)
2638420
(http://support.microsoft.com/kb/2638420/pl/
)
MS11-100: Luka w zabezpieczeniach programu .NET Framework umożliwia podniesienie uprawnień: 29 grudnia 2011 WłaściwościNumer ID artykułu: 2661403 - Ostatnia weryfikacja: 29 listopada 2012 - Weryfikacja: 4.0 Informacje zawarte w tym artykule dotyczą:
| Tłumaczenia artykułów
|


Powrót na górę








