974455 numaralı toplu güvenlik güncelleştirmesini yükledikten sonra Internet Explorer'da VBScript "Tür Uyuşmazlığı" komut dosyası hata iletisi alıyorsunuz

GİRİŞ
Internet Explorer toplu güvenlik güncelleştirmesi 974455 (MS09-054'te açıklanmaktadır), tanımlanan güvenlik açıklarını gidermek üzere çeşitli yöntemlerde ek "Tür" güvenlik denetimleri gerçekleştirmeye başlamıştır. Belirli senaryolarda, bu yeni tür güvenlik denetimleri, VBScript kullanan ya da VBScript ile birlikte JavaScript de kullanan Web sayfalarında "Tür Uyuşmazlığı" komut dosyası hatalarına neden olabilir.

MS09-054 hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
974455MS09-054: Internet Explorer toplu güvenlik güncelleştirmesi
Belirtiler
İstemci tarafı komut dosyası dili olarak VBScript ile birlikte showModalDialog() ya da showModelessDialog() yöntemlerini kullanan Web sayfalarında "Tür Uyuşmazlığı" komut dosyası hatası oluşabilir. Microsoft, şu üç senaryoda "Tür Uyuşmazlığı" komut dosyası hatasının oluşabileceğini belirlemiştir:
  • showModalDialog()
    İlk senaryo, VBScript'te showModalDialog() yöntemine parametre olarak bir Array() değeri geçirilmesi ile ilgilidir. showModalDialog() yöntemi bir gerekli bağımsız değişkeni (sURL) ve iki isteğe bağlı bağımsız değişkeni (vArguments ve sFeatures) destekler. vArguments parametresi, belge görüntülenirken kullanılacak bağımsız değişkenleri belirten bir VARIANT Tür parametresidir. Geliştirici isteğe bağlı vArguments parametresine doğrudan bir Array() değeri geçirmeye karar verirse, "Tür Uyuşmazlığı" komut dosyası hatası oluşur.

    showModalDialog yöntemi hakkında daha fazla bilgi için aşağıdaki Microsoft MSDN Web sayfasını ziyaret edin:
  • showModelessDialog()
    İkinci senaryo, VBScript'te showModelessDialog() yöntemine parametre olarak bir Array() değeri geçirilmesi ile ilgilidir. showModelessDialog() yöntemi bir gerekli bağımsız değişkeni (sURL) ve iki isteğe bağlı bağımsız değişkeni (vArguments ve sFeatures) destekler. vArguments parametresi, belge görüntülenirken kullanılacak bağımsız değişkenleri belirten bir VARIANT Tür parametresidir. Geliştirici isteğe bağlı vArguments parametresine doğrudan bir Array() değeri geçirmeye karar verirse, "Tür Uyuşmazlığı" komut dosyası hatası oluşur.

    showModelessDialog() yöntemi hakkında daha fazla bilgi için aşağıdaki Microsoft MSDN Web sayfasını ziyaret edin:
  • returnValue
    Üçüncü senaryo, bir Kalıcı İletişim Kutusu penceresinin returnValue özelliğinin açıkça ayarlanması ile ilgilidir. returnValue özelliği, varsayılan değeri olmayan bir okuma/yazma özelliğidir. MSDN'deki belgelere göre, returnValue özelliği yalnızca showModalDialog() yöntemiyle oluşturulan pencerelere uygulanır. Geliştirici VBScript'te bir Kalıcı İletişim Kutusu penceresinin returnValue özelliğini Array() değerine ayarlamaya karar verirse, "Tür Uyuşmazlığı" komut dosyası hatası oluşur.

    return Value özelliği hakkında daha fazla bilgi için aşağıdaki Microsoft MSDN Web sayfasını ziyaret edin:
Microsoft tek istemci tarafı komut dosyası dili olarak JavaScript kullanılan Web sayfalarında toplu güvenlik güncelleştirmesi 974455 nedeniyle "Tür Uyuşmazlığı" komut dosyası hatası oluştuğunu henüz gözlemlememiştir. Yalnızca VBScript içinde showModalDialog() yöntemi, showModelessDialog() yöntemi veya returnValue özelliği kullanılan Web sayfaları etkileniyor gibi görünmektedir. Web sayfası hem VBScript hem de JavaScript içeriyorsa, VBScript içinde daha önce belirtilen yöntemleri ya da özellikleri kullanıyorsa veya VBArray nesnesini kullanıyorsa etkilenebilir. VBArray nesnesi nadiren kullanılır ve VBArray ile ilgili senaryolar bu Bilgi Bankası makalesinin kapsamı içinde değildir.
Neden
Internet Explorer toplu güvenlik güncelleştirmesi MS09-054, Internet Explorer'daki tanımlanan güvenlik açıklarını gidermek üzere yayımlanmıştır. Toplu güvenlik güncelleştirmesinin bir parçası olarak, Internet Explorer, tehlikeli veri türlerinde istem dışı olarak VARIANT Tür parametrelerinin kullanılmasına karşı yeni denetimler kullanmaya başladı. Bu ek güvenlik denetimleri, kullanıcıları belirli türde saldırılardan korumak üzere, kullanıcı tarafından denetlenen değişkenlerin parçası olarak geçirilen VARIANT Tür parametrelerine ek güvenlik kısıtlamaları getirmektedir. Bu ek denetimler, VARIANT veri türlerinin kullanıldığı geçerli gözatma senaryolarını etkileyebilir.
Çözüm
Bu sorunu çözmek için, 976749 numaralı güncelleştirmeyi, güvenlik güncelleştirmesi 974455'ten sonra yükleyin. Bu sorun hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
976749 Güvenlik güncelleştirmesi 974455 (MS09-054) uygulandıktan sonra Internet Explorer'da oluşan bazı sorunların giderildiği bir güncelleştirme kullanıma sunuldu

Önemli Güvenlik güncelleştirmesi 974455'i henüz yüklemediyseniz 976749 numaralı güncelleştirmeyi de yüklemeyin. Güvenlik güncelleştirmesi 974455'i yüklemeden 976749 numaralı güncelleştirmeyi yüklerseniz, Internet Explorer düzgün çalışmayabilir. Bu durumda, 976749 numaralı güncelleştirmeyi kaldırın, güvenlik güncelleştirmesi 974455'i yükleyin ve ardından 976749 numaralı güncelleştirmeyi yeniden yükleyin.
Pratik Çözüm
Bu makalede açıklanan belirtilerle karşılaşırsanız, 974455 numaralı toplu güvenlik güncelleştirmesini uygulamaya devam etmeniz ve 976749 numaralı güncelleştirmeyi yüklemeniz önerilir. Toplu güvenlik güncelleştirmesini kaldırmaya karar veren müşteriler sistemlerini risk altında bırakacaktır.

"Belirtiler" bölümünde açıklanan ilk ve ikinci senaryolarda, 974455 numaralı güvenlik güncelleştirmesini yüklemek istemiyorsanız bir geçici çözüm uygulayabilirsiniz. Diziler, showModalDialog() veya showModelessDialog() yöntemlerine bir "Tür Uyuşmazlığı" komut dosyası hatası oluşmadan geçirilebilir.

Örneğin, aşağıdaki VBScript kodu bir "Tür Uyuşmazlığı" komut dosyası hatası oluşturacaktır.
// TÜR UYUŞMAZLIĞIvReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Aşağıdaki VBScript kodu, bir diziyi showModialDialog() veya showModelessDialog() yöntemlerine bir "Tür Uyuşmazlığı" komut dosyası hatası oluşmadan geçirir.
// TÜR UYUŞMAZLIĞI HATASI OLUŞMAZDim myArraymyArray=Array(1,2,3,4,5,6,7)vReturn = window.showModalDialog("http://www.contoso.com", myArray)
Daha önce açıklanan üçüncü senaryo için, 974455 numaralı güvenlik güncelleştirmesini yüklemek istemiyorsanız bir geçici çözüm uygulayabilirsiniz. returnValue özelliğine tek boyutlu bir Array() değerinin geçirildiği senaryolarda bu soruna geçici bir çözüm bulmak için, Join ve Split VBScript işlevlerini kullanın. Bu işlevler, Array() değerlerini returnValue özelliğine geçirmenize olanak verir.

Örneğin, aşağıdaki VBScript kodu bir "Tür Uyuşmazlığı" komut dosyası hatası oluşturur.
// TÜR UYUŞMAZLIĞIDim arrayItemsarrayItems(0) = 1arrayItems(1) = 2arrayItems(2) = 3Window.returnvalue = arrayItems
Join ve Split VBScript işlevlerini kullandığınızda, returnValue özelliğini bir "Tür Uyuşmazlığı" komut dosyası hatası oluşmadan ayarlayabilirsiniz.
// TÜR UYUŞMAZLIĞI HATASI OLUŞMAZDim arrayItemsarrayItems(0) = 1arrayItems(1) = 2arrayItems(2) = 3Dim arrString = Join(arrayItems, ";")Window.returnvalue = arrStringDim strTemp = window.showModalDialog(……)Dim arrayItems = Split(strTemp, ";")
Yukarıda açıklanan ve çok boyutlu Array() değerlerinin veya nesne içeren Array() değerlerinin returnValue özelliğine geçirildiği üçüncü senaryo için, 974455 numaralı güvenlik güncelleştirmesini yüklemek istemiyorsanız bir geçici çözüm uygulayabilirsiniz. Bu senaryoda bu soruna geçici bir çözüm bulmak için, bir JavaScript işlevi kullanarak returnValue özelliğini ayarlayabilirsiniz. Bu JavaScript işlevi, VBScript alt yordamları ve işlevleri tarafından kullanılabilir. JavaScript işlevi tarafından ayarlanan tüm returnValue özelliği değerleri VBScript tarafından kullanılabilir.

Örneğin, aşağıdaki VBScript kodu bir "Tür Uyuşmazlığı" komut dosyası hatası oluşturur.
// TÜR UYUŞMAZLIĞI<script LANGUAGE=vbscript>Option ExplicitSub Window_OnLoadDim abc(1,2,3)Window.ReturnValue = abcEnd Sub</script>
Varolan bir VBScript koduyla bir JavaScript işlevi kullandığınızda, returnValue özelliğini bir "Tür Uyuşmazlığı" komut dosyası hatası oluşmadan ayarlayabilirsiniz.
// TÜR UYUŞMAZLIĞI HATASI OLUŞMAZ<script Language=JavaScript>function setReturnValue(){var returnValueArray= new Array();returnValueArray[0] = 1;returnValueArray[1] = 2;returnValueArray[2] = 3;window.returnValue = returnValueArray;}</script><script LANGUAGE=vbscript??Option ExplicitSub Window_OnLoadsetReturnValue()msgbox window.returnValueEnd Sub</script>
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Özellikler

Makale No: 976949 - Son İnceleme: 12/03/2009 19:41:50 - Düzeltme: 3.1

Windows Internet Explorer 8, Windows Internet Explorer 7, Microsoft Internet Explorer 6.0, Microsoft Internet Explorer 6.0 SP1, Microsoft Internet Explorer 5.01 Service Pack 4

  • kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949
Geri bildirim