Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

™zet

Microsoft güvenlik güncelleştirmesi MS11-100; form anahtarı, dosya ve JSON üyelerini HTTP isteğinde 1000 olarak sınırlar. Bu değişiklik nedeniyle, ASP.NET uygulamaları bu öğelerden 1000'den fazlasını içeren istekleri reddeder. Bu tür istekler yapan HTTP istemcileri reddedilir ve web tarayıcısında bir hata iletisi görünür. Hata iletisinde genellikle HTTP 500 durum kodu vardır. Bu yeni sınır, her uygulama için ayrı ayrı yapılandırılabilir. Yapılandırma yönergeleri için lütfen "Çözüm" bölümüne bakın.


Belirtiler

Çok fazla form anahtarı, dosya veya JSON yüküne sahip ASP.NET istekleri, sunucudan hata yanıtı alır. Sunucudaki Uygulama günlüğünde ASP.NET'in belirli bir sürümü olan Kaynak'a sahip bir Uyarı girdisi ve Olay Kimliği 1309 bulunur. Olay günlüğü aşağıdaki iletilerden birini içerir: 


İleti 1:

Uygulama bilgileri:
    Uygulama etki alanı: /LM/W3SVC/1/ROOT/<App Domain>
    Güven düzeyi: Orta
    Uygulama Sanal Yolu: <VDIR Path>
    Uygulama Yolu: <App Path>
    Makine adı: <Machine Name>
İşlem bilgileri:
    İşlem Kimliği: 0001
    İşlem adı: w3wp.exe
    Hesap adı: IIS APPPOOL\DefaultAppPool

Özel durum bilgisi:
    Özel durum türü: HttpException
    Özel durum iletisi: URL olarak kodlanmış form verileri geçerli değil.
   şu öğede: System.Web.HttpRequest.FillInFormCollection()
   şu öğede: System.Web.HttpRequest.get_Form()
   şu öğede: System.Web.HttpRequest.get_HasForm()
   şu öğede: System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   şu öğede: System.Web.UI.Page.DeterminePostBackMode()
   şu öğede: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 


İleti 2:

Uygulama bilgileri:
    Uygulama etki alanı: /LM/W3SVC/1/ROOT/<App Domain>
    Güven düzeyi: Orta
    Uygulama Sanal Yolu: <VDIR Path>
    Uygulama Yolu: <App Path>
    Makine adı: <Machine Name>

İşlem bilgileri:
    İşlem Kimliği: 0001
    İşlem adı: w3wp.exe
    Hesap adı: IIS APPPOOL\DefaultAppPool

Özel durum bilgisi:
    Özel durum türü: InvalidOperationException
    Özel durum iletisi: Nesnenin geçerli durumu nedeniyle işlem geçersiz.
   şu öğede: System.Web.HttpRequest.FillInFilesCollection()
   şu öğede: System.Web.HttpRequest.get_Files()
   şu öğede: FileUpload.Page_Load(Object sender, EventArgs e)
   şu öğede: System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   şu öğede: System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   şu öğede: System.Web.UI.Control.OnLoad(EventArgs e)
   şu öğede: System.Web.UI.Control.LoadRecursive()
   şu öğede: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint


İleti 3:

Uygulama bilgileri:
    Uygulama etki alanı: /LM/W3SVC/1/ROOT/<App Domain>
    Güven düzeyi: Orta
    Uygulama Sanal Yolu: <VDIR Path>
    Uygulama Yolu: <App Path>
    Makine adı: <Machine Name>

İşlem bilgileri:
    İşlem Kimliği: 0001
    İşlem adı: w3wp.exe
    Hesap adı: IIS APPPOOL\DefaultAppPool

Özel durum bilgisi:
    Özel durum türü: InvalidOperationException
    Özel durum iletisi: Nesnenin geçerli durumu nedeniyle işlem geçersiz.
   şu öğede: System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
   şu öğede: System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
   şu öğede: System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
   şu öğede: System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
   şu öğede: System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
   şu öğede: Failing.Page_Load(Object sender, EventArgs e)
   şu öğede: System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
   şu öğede: System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   şu öğede: System.Web.UI.Control.OnLoad(EventArgs e)
   şu öğede: System.Web.UI.Control.LoadRecursive()
   şu öğede: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



IIS günlük dosyası aşağıdakine benzer bir girdi gösterir:

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




Neden

MS11-100 güvenlik bülteninde belirtilen Microsoft güvenlik güncelleştirmesi, ASP.NET'in bir istekte kabul edeceği en fazla form anahtarı, dosya ve JSON üyelerinin varsayılan sayısını 1.000 olarak değiştirir. Bu değişiklik, Microsoft MS11-100 güvenlik bülteninin belgelediği Hizmet Reddi güvenlik açığını gidermek için yapılmıştır.


Çözüm

Form anahtarları veya dosyalara yönelik bu sınıra ulaşan uygulamalar, ASP.NET appSetting aspnet:MaxHttpCollectionKeys öğesini ASP.NET uygulamasının yapılandırma dosyasında aşağıda gösterildiği gibi değiştirebilir. Bu ayar "Belirtiler" bölümündeki hata iletisi 1 ve hata iletisi 2'yi giderir.

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



Not x86 tabanlı bir sistemde ASP.NET 1.1 kullanıyorsanız, ayar aşağıdaki kayıt defteri anahtarına DWORD değeri eklenerek belirlenir:

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

x64 tabanlı bir sistemde ASP.NET 1.1 kullanıyorsanız, ayar aşağıdaki kayıt defteri anahtarına DWORD değeri eklenerek belirlenir:

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




JSON yüklerine yönelik bu sınıra ulaşan uygulamalar, ASP.NET appSetting aspnet:MaxJsonDeserializerMembers öğesini bir ASP.NET uygulamasının yapılandırma dosyasında aşağıda gösterildiği gibi değiştirebilir. Bu ayar, "Belirtiler" bölümündeki hata iletisi 3'ü hedef alır.

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




Not Bu değeri varsayılan ayarın üzerine çıkarmak, sunucunuzun MS11-100 güvenlik bülteninde açıklanan Hizmet Reddi güvenlik açığına karşı olan hassasiyetini artırır.


Referanslar

Güvenlik bülteni MS11-100 hakkında daha fazla bilgi için, aşağıdaki TechNet makalesine bakın:

Microsoft Güvenlik Bülteni MS11-100 - Kritik Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

2638420 MS11-100: .NET Framework'deki güvenlik açığı ayrıcalık yükselmesine izin verebilir: 29 Aralık 2011

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×