Internet Explorer toplu güvenlik güncelleştirmesi 974455 (
MS09-054
(http://www.microsoft.com/turkiye/technet/security/bulletin/2009/ms09-054.mspx)
'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
(http://support.microsoft.com/kb/974455/
)
MS09-054: Internet Explorer toplu güvenlik güncelleştirmesi
İ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.
Internet Explorer toplu güvenlik güncelleştirmesi
MS09-054
(http://www.microsoft.com/turkiye/technet/security/bulletin/2009/ms09-054.mspx)
, 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.
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
(http://support.microsoft.com/kb/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.
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>
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.