Der vises en VBScript-scriptfejlmeddelelse om typeuoverensstemmelse i Internet Explorer, når du har installeret den kumulative sikkerhedsopdatering 974455

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 976949 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

INTRODUKTION

Med den kumulative sikkerhedsopdatering 974455 til Internet Explorer (beskrevet i MS09-054) blev der introduceret ekstra "Type"-sikkerhedskontroller for forskellige metoder for at fjerne identificerede sikkerhedsrisici i programmet. Disse nye sikkerhedskontroller kan i visse tilfælde medføre, at der opstår scriptfejl på grund af typeuoverensstemmelse på websider, som bruger VBScript, eller på websider, som bruger en blanding af VBScript og JavaScript.

Du kan finde flere oplysninger om sikkerhedsbulletin MS09-054 ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
974455 MS09-054: Kumulativ sikkerhedsopdatering til Internet Explorer

Symptomer

Der vises muligvis en scriptfejlmeddelelse om typeuoverensstemmelse på websider, der bruger VBScript som scriptsprog på klientsiden, og som bruger metoden showModalDialog() eller metoden showModelessDialog(). Microsoft har identificeret følgende tre scenarier, hvor du kan få vist scriptfejlmeddelelser om typeuoverensstemmelse:
  • showModalDialog()
    Det første scenarie vedrører medsendelse af en Array()-værdi som parameter til metoden showModalDialog() i VBScript. Metoden showModalDialog() understøtter ét obligatorisk argument (sURL) og to valgfrie argumenter (vArguments og sFeatures). Parameteren vArguments er en VARIANT Type-parameter, som angiver, hvilke argumenter der skal bruges til visning af dokumentet. Hvis en udvikler sender en Array()-værdi direkte til den valgfrie vArguments-parameter, opstår der en scriptfejl på grund af typeuoverensstemmelse.

    Du kan finde flere oplysninger om metoden showModalDialog på følgende Microsoft MSDN-websted. Siden er evt. på engelsk:
    http://msdn.microsoft.com/da-dk/library/ms536759(VS.85).aspx
  • showModelessDialog()
    Det andet scenarie vedrører medsendelse af en Array()-værdi som parameter til metoden showModelessDialog() i VBScript. Metoden showModelessDialog() understøtter ét obligatorisk argument (sURL) og to valgfrie argumenter (vArguments og sFeatures). Parameteren vArguments er en VARIANT Type-parameter, som angiver, hvilke argumenter der skal bruges til visning af dokumentet. Hvis en udvikler sender en Array()-værdi direkte til den valgfrie vArguments-parameter, opstår der en scriptfejl på grund af typeuoverensstemmelse.

    Du kan finde flere oplysninger om metoden showModelessDialog på følgende Microsoft MSDN-websted. Siden er evt. på engelsk:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    Det tredje scenarie involverer eksplicit angivelse af egenskaben returnValue i et vindue med en modal dialogboks. Egenskaben returnValue er en læse/skrive-egenskab, som ikke har nogen standardværdi. I henhold til dokumentationen på MSDN gælder egenskaben returnValue kun for vinduer, som oprettes med metoden showModalDialog(). Hvis en udvikler eksplicit vælger at angive egenskaben returnValue i et vindue med en modaldialogboks til en Array()-værdi i VBScript, opstår der en scriptfejl på grund af typeuoverensstemmelse.

    Du kan finde flere oplysninger om egenskaben returnValue på følgende Microsoft MSDN-websted. Siden er evt. på engelsk:
    http://msdn.microsoft.com/da-dk/library/ms534371(VS.85).aspx
Microsoft har ikke i øjeblikket registreret scriptfejl på grund af typeuoverensstemmelse i forbindelse med den kumulative sikkerhedsopdatering 974455 på websider, der bruger JavaScript som det eneste scriptsprog på klientsiden. Problemet synes kun at forekomme på websider, som bruger metoden showModalDialog(), metoden showModelessDialog() eller egenskaben returnValue i VBScript. Hvis websiden indeholder en blanding af både VBScript og JavaScript, er den muligvis berørt, hvis websiden bruger de metoder eller egenskaber, der blev beskrevet tidligere, i VBScript, eller hvis websiden bruger objektet VBArray. Objektet VBArray bruges kun sjældent, og denne artikel i Microsoft Knowledge Base indeholder derfor ikke nogen scenarier, som involverer VBArray.

Årsag

Den kumulative sikkerhedsopdatering til Internet Explorer, MS09-054, blev udgivet for at fjerne identificerede sikkerhedsrisici i Internet Explorer. Som en del af den kumulative sikkerhedsopdatering blev der introduceret nye kontroller i Internet Explorer mod utilsigtet ændring af VARIANT Type-parameteren til risikable datatyper. De ekstra sikkerhedskontroller har sikkerhedsbegrænsninger for VARIANT Type-parametre, der medsendes som en del af brugerkontrollerede variabler, for at beskytte brugeren mod bestemte former for angreb. Disse ekstra kontroller påvirker muligvis legitime websøgningsscenarier, hvor der bruges VARIANT-datatyper.

Løsning

Du kan løse problemet ved at installere opdatering 976749, efter du har installeret sikkerhedsopdatering 974455. Du kan finde flere oplysninger om dette problem ved at klikke på nedenstående artikelnummer for at få vist artiklen i Microsoft Knowledge Base:
976749 En opdatering er tilgængelig til Internet Explorer, der løser problemer, som opstår efter du har installeret sikkerhedsopdatering 974455 (MS09-054)

Vigtigt! Du skal ikke installere opdatering 976749, hvis du ikke har installeret sikkerhedsopdatering 974455. Hvis du installerer opdatering 976749 uden at have installeret sikkerhedsopdatering 974455 først, fungerer Internet Explorer muligvis ikke korrekt. Hvis du oplever dette problem, skal du fjerne opdatering 976749, installere sikkerhedsopdatering 974455 og derefter geninstallere opdatering 976749.

Workaround

Det anbefales, at du fortsat anvender den kumulative sikkerhedsopdatering 974455, og at du installerer opdatering 976749, hvis du oplever de symptomer, der er beskrevet i denne artikel. Kunder, som vælger at fjerne den kumulative sikkerhedsopdatering, udsætter deres systemer for sikkerhedsrisici.

I forbindelse med første og andet scenarie, som beskrives i afsnittet "Symptomer", kan du implementere en midlertidig løsning, hvis du ikke vil installere sikkerhedsopdatering 974455. Du kan løse problemet midlertidigt ved eksplicit at erklære Array()-variablen som en VBScript-variabel. Det er muligt at sende Array-værdier til metoden showModalDialog() eller til metoden showModelessDialog(), uden at der opstår en scriptfejl på grund af typeuoverensstemmelse.

Følgende VBScript vil f.eks. medføre, at der opstår en scriptfejl på grund af typeuoverensstemmelse:
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Følgende VBScript sender en Array-værdi til metoden showModialDialog() eller til metoden showModelessDialog(), uden at der opstår en scriptfejl på grund af typeuoverensstemmelse:
// NO TYPE MISMATCH ERROR
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
I forbindelse med det tredje scenarie, som er beskrevet tidligere, kan du implementere en midlertidig løsning, hvis du ikke vil installere sikkerhedsopdatering 974455. Du kan løse problemet midlertidigt i scenarier, hvor en endimensionel Array()-værdi sendes til egenskaben returnValue, ved hjælp af VBScript-funktionerne Join og Split. Dermed bliver det muligt at sende Array()-værdier til egenskaben returnValue.

Følgende VBScript vil f.eks. medføre, at der opstår en scriptfejl på grund af typeuoverensstemmelse:

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Når du bruger VBScript-funktionerne Join og Split, kan du angive egenskaben returnValue, uden at der opstår en scriptfejl på grund af typeuoverensstemmelse.

// NO TYPE MISMATCH ERROR
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, ";")

I det tredje scenarie, der blev beskrevet tidligere, hvor flerdimensionelle Array()-værdier eller Array()-værdier, som indeholder objekter, sendes til egenskaben returnValue, kan du implementere en midlertidig løsning, hvis du ikke vil installere sikkerhedsopdatering 974455. Du kan løse problemet midlertidigt i dette scenarie ved at angive egenskaben returnValue ved hjælp af en JavaScript-funktion. Denne JavaScript-funktion er tilgængelig til VBScript-underrutiner og -funktioner. Enhver værdi, der angives for egenskaben returnValue ved hjælp af en JavaScript-funktion, vil være tilgængelig for VBScript.

Følgende VBScript vil f.eks. medføre, at der opstår en scriptfejl på grund af typeuoverensstemmelse:
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Hvis du bruger en JavaScript-funktion sammen med et eksisterende VBScript, kan du angive egenskaben returnValue, uden at der opstår en scriptfejl på grund af typeuoverensstemmelse.
// NO TYPE MISMATCH ERROR
<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 har bekræftet, at dette problem forekommer i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Egenskaber

Artikel-id: 976949 - Seneste redigering: 3. december 2009 - Redigering: 3.1
Oplysningerne i denne artikel gælder:
  • Windows Internet Explorer 8 på følgende platforme
    • 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 på følgende platforme
    • 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 på følgende platforme
    • 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 på følgende platforme
    • 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 på følgende platforme
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Nøgleord: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949

Send feedback

 

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