Nach der Installation des kumulativen Sicherheitsupdates 974455 wird in Internet Explorer eine VBScript-Skriptfehlermeldung "Typenkonflikt" angezeigt

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 976949 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

EINFÜHRUNG

Mit dem kumulativen Sicherheitsupdate für Internet Explorer 974455 (beschrieben in MS09-054) wurden zusätzliche "Typ"-Sicherheitsprüfungen in verschiedenen Methoden eingeführt, um erkannte Sicherheitsrisiken zu beseitigen. In bestimmten Szenarien können diese neuen Typsicherheitsprüfungen auf Webseiten, die VBScript oder eine Kombination aus VBScript und JavaScript verwenden, zu "Typenkonflikt"-Skriptfehlern führen.

Weitere Informationen zu MS09-054 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
974455 MS09-054: Kumulatives Sicherheitsupdate für Internet Explorer

Problembeschreibung

Auf Webseiten, die VBScript als Skriptsprache auf der Clientseite sowie die Methoden showModalDialog() oder showModelessDialog() verwenden, tritt ein "Typenkonflikt"-Skriptfehler auf. Microsoft hat die folgenden drei Szenarien ermittelt, in denen möglicherweise ein "Typenkonflikt"-Skriptfehler generiert wird:
  • showModalDialog()
    Beim ersten Szenario wird ein Array()-Wert als Parameter an die Methode showModalDialog() in VBScript übergeben. Die Methode showModalDialog() unterstützt ein erforderliches Argument (sURL) sowie zwei optionale Argumente (vArguments und sFeatures). Der Parameter vArguments ist ein Parameter vom Typ VARIANT, der die zum Anzeigen des Dokuments verwendeten Argumente angibt. Wenn ein Entwickler beschließt, ein Array() direkt an den optionalen Parameter vArguments zu übergeben, tritt ein "Typenkonflikt"-Skriptfehler auf.

    Weitere Informationen zur Methode showModalDialog finden Sie auf folgender Microsoft MSDN-Webseite:
    http://msdn.microsoft.com/de-de/library/ms536759(VS.85).aspx
  • showModelessDialog()
    Beim zweiten Szenario wird ein Array()-Wert als Parameter an die Methode showModelessDialog() in VBScript übergeben. Die Methode showModelessDialog() unterstützt ein erforderliches Argument (sURL) sowie zwei optionale Argumente (vArguments und sFeatures). Der Parameter vArguments ist ein Parameter vom Typ VARIANT, der die zum Anzeigen des Dokuments verwendeten Argumente angibt. Wenn ein Entwickler beschließt, ein Array() direkt an den optionalen Parameter vArguments zu übergeben, tritt ein "Typenkonflikt"-Skriptfehler auf.

    Weitere Informationen zur Methode showModelessDialog finden Sie auf folgender Microsoft MSDN-Webseite:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    Beim dritten Szenario wird die Eigenschaft returnValue eines modalen Dialogfelds explizit festgelegt. Die Eigenschaft returnValue ist eine Lese-/Schreibeigenschaft ohne Standardwert. Gemäß der Dokumentation in MSDN gilt die Eigenschaft returnValue nur für mit der Methode showModalDialog() erstellte Fenster. Wenn ein Entwickler beschließt, die Eigenschaft returnValue des modalen Dialogfelds auf einen Array()-Wert in VBScript festzulegen, tritt ein "Typenkonflikt"-Skriptfehler auf.

    Weitere Informationen zur Eigenschaft returnValue finden Sie auf folgender Microsoft MSDN-Webseite:
    http://msdn.microsoft.com/de-de/library/ms534371(VS.85).aspx
Aktuell hat Microsoft keine "Typenkonflikt"-Skriptfehler im Zusammenhang mit dem kumulativen Sicherheitsupdate 974455 auf Webseiten festgestellt, die JavaScript als einzige clientseitige Skriptsprache verwenden. Es scheinen nur Webseiten betroffen zu sein, auf denen die Methode showModalDialog(), die Methode showModelessDialog() oder die Eigenschaft returnValue in VBScript verwendet wird. Enthält die Webseite eine Kombination aus VBScript und JavaScript, ist sie möglicherweise betroffen, wenn die oben behandelten Methoden oder Eigenschaften in VBScript oder das Objekt VBArray verwendet werden. Die Verwendung des Objekts VBArray ist unüblich, und Szenarien mit VBArray werden in diesem Knowledge Base-Artikel nicht behandelt.

Ursache

Das kumulative Sicherheitsupdate für Internet Explorer MS09-054 wurde veröffentlicht, um erkannte Sicherheitsrisiken in Internet Explorer zu beheben. Als Teil des kumulativen Sicherheitsupdates wurden neue Prüfungen eingeführt, um ein unbeabsichtigtes Umwandeln von Parametern vom Typ VARIANT in gefährliche Datentypen in Internet Explorer zu verhindern. Die zusätzlichen Sicherheitsprüfungen führen zusätzliche Sicherheitsbeschränkungen für Parameter vom Typ VARIANT ein, die als Teil von benutzergesteuerten Variablen übergeben werden, um den Benutzer vor bestimmten Arten von Angriffen zu schützen. Diese zusätzlichen Prüfungen können legitime Browserszenarien, die VARIANT-Datentypen verwenden, beeinträchtigen.

Lösung

Um das Problem zu beheben, installieren Sie das Update 976749, nachdem Sie Sicherheitsupdate 974455 installiert haben. Weitere Informationen zu diesem Problem finden Sie im folgenden Artikel der Microsoft Knowledge Base:
976749 Ein Update für Internet Explorer ist verfügbar, das Probleme behebt, die nach der Installation von Sicherheitsupdate 974455 (MS09-054) auftreten

Wichtig Installieren Sie Update 976749 nur, wenn Sie Sicherheitsupdate 974455 installiert haben. Wenn Sie Update 976749 installieren, ohne zuvor Sicherheitsupdate 974455 installiert zu haben, funktioniert Internet Explorer möglicherweise nicht ordnungsgemäß. In diesem Fall deinstallieren Sie Update 976749 wieder, installieren Sie Sicherheitsupdate 974455, und installieren Sie Update 976749 erneut.

Abhilfe

Es empfiehlt sich, das kumulative Sicherheitsupdate 974455 weiterhin anzuwenden und Update 976749 zu installieren, wenn die in diesem Artikel beschriebenen Symptome auftreten. Benutzer, die das kumulative Sicherheitsupdate entfernen, setzen ihre Systeme Risiken aus.

Für das erste und das zweite der im Abschnitt "Problembeschreibung" beschriebenen Szenarien können Sie eine Problemumgehung implementieren, wenn Sie das Sicherheitsupdate 974455 nicht installieren möchten. Zum Umgehen des Problems deklarieren Sie die Variable Array() explizit als VBScript-Variable. Arrays können ohne einen "Typenkonflikt"-Skriptfehler an die Methode showModalDialog() oder showModelessDialog() übergeben werden.

Das folgende VBScript verursacht z. B. einen "Typenkonflikt"-Skriptfehler.
// TYPENKONFLIKT
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Das folgende VBScript übergibt ein Array an die Methode showModalDialog() oder showModelessDialog(), ohne einen "Typenkonflikt"-Skriptfehler zu verursachen.
// KEIN TYPENKONFLIKT-FEHLER
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
Für das dritte, weiter oben behandelte Szenario können Sie eine Problemumgehung implementieren, wenn Sie das Sicherheitsupdate 974455 nicht installieren möchten. Um das Problem in Szenarien zu umgehen, bei denen ein eindimensionaler Array()-Wert an die Eigenschaft returnValue übergeben wird, verwenden Sie die VBScript-Funktionen Join und Split. Auf diese Weise können Sie Array()-Werte an die Eigenschaft returnValue übergeben.

Das folgende VBScript generiert z. B. einen "Typenkonflikt"-Skriptfehler.

// TYPENKONFLIKT
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Mit den VBScript-Funktionen Join und Split können Sie die Eigenschaft returnValue festlegen, ohne einen "Typenkonflikt"-Skriptfehler zu generieren.

// KEIN TYPENKONFLIKT-FEHLER
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, ";")

Werden im dritten der oben behandelten Szenarien mehrdimensionale Array()-Werte oder Array()-Werte, die über Objekte verfügen, an die Eigenschaft returnValue übergeben, können Sie eine Problemumgehung implementieren, wenn Sie das Sicherheitsupdate 974455 nicht installieren möchten. Um das Problem in diesem Szenario zu umgehen, verwenden Sie eine JavaScript-Funktion, um die returnValue-Eigenschaft festzulegen. Diese JavaScript-Funktion ist für VBScript-Unterroutinen und -Funktionen verfügbar. Alle returnValue-Eigenschaftenwerte, die von einer JavaScript-Funktion festgelegt werden, sind für VBScript verfügbar.

Das folgende VBScript generiert z. B. einen "Typenkonflikt"-Skriptfehler.
// TYPENKONFLIKT
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Indem Sie eine JavaScript-Funktion zusammen mit vorhandenem VBScript verwenden, können Sie die Eigenschaft returnValue festlegen, ohne einen "Typenkonflikt"-Skriptfehler zu generieren.
// KEIN TYPENKONFLIKT-FEHLER
<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>

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Eigenschaften

Artikel-ID: 976949 - Geändert am: Dienstag, 1. Dezember 2009 - Version: 3.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Windows Internet Explorer 8, wenn verwendet mit:
    • 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
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Windows Internet Explorer 7, wenn verwendet mit:
    • 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
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • 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, wenn verwendet mit:
    • Microsoft Windows XP Professional
    • 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 (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • 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, wenn verwendet mit:
    • 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, wenn verwendet mit:
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Keywords: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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