Du får en feilmelding for VBScript "Type Mismatch" skriptfeil i Internet Explorer etter at du installerer kumulativ sikkerhetsoppdatering 974455

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 976949 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

INNLEDNING

Den kumulative sikkerhetsoppdateringen for Internet Explorer 974455, som beskrevet i MS09-054, innførte ekstra sikkerhetssjekker av "Type" i ulike metoder for å løse identifiserte sikkerhetsproblemer. I enkelte tilfeller kan disse nye sikkerhetssjekkene føre til skriptfeil av typen "Type Mismatch" på webområder som bruker VBScript eller på webområder som bruker en blanding av VBScript og JavaScript.

Hvis du vil ha mer informasjon om MS09-054, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
974455 MS09-054: Kumulativ sikkerhetsoppdatering for Internet Explorer

Symptom

Webområder som bruker VBScript som skriptspråk for klientsiden, og som bruker metodene showModalDialog() eller showModelessDialog() kan vise skriptfeilen "Type Mismatch". Microsoft har identifisert de følgende tre tilfellene hvor en skriptfeil av typen "Type Mismatch" kan genereres:
  • showModalDialog()
    Det første tilfellet innebærer å overbringe en verdi av typen Array() som en parameter til metoden showModalDialog() i VBScript. Metoden showModalDialog() støtter ett påkrevd argument (sURL) og to valgfrie argumenter (vArguments og sFeatures). Parameteren vArguments er en parameter av typen VARIANT Type som angir argumentene som skal brukes når dokumentet vises. Hvis en utvikler velger å oversende en Array() direkte til den valgfrie parameteren vArguments, vil en skriptfeil av typen "Type Mismatch" oppstå.

    Hvis du vil ha mer informasjon om metoden showModalDialog, kan du gå til følgende Microsoft MSDN-webområde:
    http://msdn.microsoft.com/nb-no/library/ms536759(VS.85).aspx
  • showModelessDialog()
    Det andre tilfellet innebærer å overbringe en verdi av typen Array() som en parameter til metoden showModelessDialog() i VBScript. Metoden showModelessDialog() støtter ett påkrevd argument (sURL) og to valgfrie argumenter (vArguments og sFeatures). Parameteren vArguments er en parameter av typen VARIANT Type som angir argumentene som skal brukes når dokumentet vises. Hvis en utvikler velger å oversende en Array() direkte til den valgfrie parameteren vArguments, vil en skriptfeil av typen "Type Mismatch" oppstå.

    Hvis du vil ha mer informasjon om metoden showModelessDialog, kan du gå til følgende Microsoft MSDN-webområde:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    Det tredje tilfellet innebærer bruk av den eksplisitte innstillingen for egenskapen returnValue for et Modal Dialog-vindu. Egenskapen returnValue er en lese/skriveegenskap som ikke har en standardverdi. I henhold til dokumentasjon på MSDH gjelder egenskapen returnValue kun for vinduer som blir opprettet ved hjelp av metoden showModalDialog(). Hvis en utvikler velger å eksplisitt angi egenskapen returnValue for et Modal Dialog-vindu til en Array()-verdi i VBScript, vil en skriptfeil av typen "Type Mismatch" oppstå.

    Hvis du vil ha mer informasjon om egenskapen returnValue, kan du gå til følgende Microsoft MSDN-webområde:
    http://msdn.microsoft.com/nb-no/library/ms534371(VS.85).aspx
På det nåværende tidspunkt har ikke Microsoft sett skriptfeil av typen "Type Mismatch" som har oppstått fra den kumulative sikkerhetsoppdateringen 974455 på webområder som bruker JavaScript som eneste skriptspråk for klientsiden. Kun webområder som bruker metoden showModalDialog(), metoden showModelessDialog() eller egenskapen returnValue i VBScript ser ut til å være påvirket. Hvis webområdet inneholder en blanding av både VBScript og JavaSciprt, kan det være påvirket hvis webområdet bruker metodene eller egenskapene som ble omtalt tidligere i VBScript, eller hvis webområdet bruker objektet VBArray. Bruk av objektet VBArray er uvanlig, og tilfeller som inkluderer VBArray vil ikke dekkes av denne Knowledge Base-artikkelen.

Årsak

Kumulativ sikkerhetsoppdatering for Internet Explorer MS09-054 ble lansert for å løse identifiserte sikkerhetsproblemer i Internet Explorer. Som en del av den kumulative sikkerhetsoppdateringen introduserte Internet Explorer nye analyser mot uønsket overføring av parametre av typen VARIANT Type til farlige datatyper. De ekstra sikkerhetssjekkene innførte ekstra strenge sikkerhetstiltak for parametre av typen VARIANT Type som overføres som en del av brukerkontrollerte variabler for å beskytte brukeren fra enkelte angrep. Disse ekstra sjekkene kan påvirke ærlige nettlesingsscenarier som bruker datatyper av typen VARIANT.

Løsning

Du kan løse dette problemet ved å installere sikkerhetsoppdatering 976749 etter at du har installert sikkerhetsoppdatering 974455. Klikk følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base hvis du vil ha mer informasjon om dette problemet:
976749 En oppdatering for Internet Explorer som løser problemer som oppstår etter at du installerer sikkerhetsoppdatering 974455 (MS09-054) er tilgjengelig

Viktig Ikke installer oppdatering 976749 hvis du ikke har installert sikkerhetsoppdatering 974455. Hvis du installerer oppdatering 976749 uten å installere sikkerhetsoppdatering 974455 først, kan det hende at Internet Explorer ikke fungerer som normalt. Hvis dette oppstår, må du avinstallere oppdatering 976749, installere sikkerhetsoppdatering 974455 og deretter installere oppdatering 976749 på nytt.

Workaround

Vi anbefaler at du fortsetter å installere den kumulative sikkerhetsoppdateringen 974455 og at du installerer oppdatering 976749 hvis du opplever symptomene som beskrives i denne artikkelen. Kunder som bestemmer deg for å fjerne den kumulative sikkerhetsoppdateringen plassere sine systemer i faresonen.

I de to første eksemplene i avsnittet "Symptomer" kan du implementere en omgåelse hvis du ikke vil installere sikkerhetsoppdatering 974455. Hvis du vil omgå problemet, kan du eksplisitt deklarere variabelen Array() i en VBScript-variabel. Matriser kan deretter overbringes til metodene showModalDialog() eller showModelessDialog() uten en skriptfeil av typen "Type Mismatch".

For eksempel vil følgende VBScript føre til en skriptfeil av typen "Type Mismatc".
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Det følgende VBScriptet vil overføre en matrise til metodene showModalDialog() eller showModelessDialog() uten en skriptfeil av typen "Type Mismatch".
// INGEN TYPE MISMATCH-FEIL
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
I det tredje eksempelet som ble omtalt tidligere, kan du implementere en omgåelse hvis du ikke vil installere sikkerhetsoppdatering 974455. For å omgå problemet i eksempler hvor en enkelt dimensjonsverdi for Array() sendes til egenskapen returnValue, kan du bruke VBScript-funksjonene Join og Split. Dette lar deg overføre verdier av typen Array() til egenskapen returnValue.

For eksempel vil følgende VBScript føre til en skriptfeil av typen "Type Mismatc".

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Når du bruker VBScript-funksjonene Join og Split, kan du angi egenskapen returnValue uten at det genereres en skriptfeil av typen "Type Mismatch".

// INGEN TYPE MISMATCH-FEIL
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 eksempelet som ble omtalt tidligere, hvor multidimensjonelle verdier for Array() eller Array()-verdier med objekter sendes til egenskapen returnValue, kan du implementere en omgåelse hvis du ikke vil installere sikkerhetsoppdatering 974455. For å omgå problemet i dette eksempelet, kan du bruke en JavaScript-funksjon for å angi egenskapen returnValue. Denne JavaScript-funksjonen er tilgjengelig for underrutiner og funksjoner i VBScript. En verdi for egenskapen returnValue som angis av en JavaScript-funksjon vil være tilgjengelig for VBScript.

For eksempel vil følgende VBScript føre til en skriptfeil av typen "Type Mismatc".
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Når du bruker en JavaScript-fuknsjon sammen med et eksisterende VBScript, kan du angi egenskapen returnValue uten at det genereres en skriptfeil av typen "Type Mismatch".
// INGEN TYPE MISMATCH-FEIL
<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 bekreftet at dette er et problem for Microsoft-produktene som er oppført under Informasjonen i denne artikkelen gjelder.

Egenskaper

Artikkel-ID: 976949 - Forrige gjennomgang: 3. desember 2009 - Gjennomgang: 3.1
Informasjonen i denne artikkelen gjelder:
  • Windows Internet Explorer 8 på følgende plattformer
    • 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 plattformer
    • 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 plattformer
    • 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 plattformer
    • 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 plattformer
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Nøkkelord: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949

Gi tilbakemelding

 

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