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

Makale çevirileri Makale çevirileri
Makale numarası: 976949 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

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:
974455 MS09-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:
    http://msdn.microsoft.com/tr-tr/library/ms534303(VS.85).aspx
  • 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:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • 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:
    http://msdn.microsoft.com/tr-tr/library/ms534371(VS.85).aspx
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ĞI
vReturn = 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ŞMAZ
Dim myArray
myArray=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ĞI
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.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ŞMAZ
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3

Dim arrString = Join(arrayItems, ";")
Window.returnvalue = arrString
Dim 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 Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End 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 Explicit

Sub Window_OnLoad
setReturnValue()
msgbox window.returnValue
End 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 numarası: 976949 - Last Review: 3 Aralık 2009 Perşembe - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Windows Internet Explorer 8, Ne zaman ne ile kullanilir:
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • 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 XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Windows Internet Explorer 7, Ne zaman ne ile kullanilir:
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • 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 XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 6.0, Ne zaman ne ile kullanilir:
    • Microsoft Windows XP Professional Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003 Web Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 6.0 SP1, Ne zaman ne ile kullanilir:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
  • Microsoft Internet Explorer 5.01 Service Pack 4, Ne zaman ne ile kullanilir:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Anahtar Kelimeler: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com