Du er frakoblet, venter på at Internett skal koble til igjen

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

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:
974455MS09-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:
  • 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:
  • 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:
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:
976749En 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 MISMATCHvReturn = 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-FEILDim myArraymyArray=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 MISMATCHDim arrayItemsarrayItems(0) = 1arrayItems(1) = 2arrayItems(2) = 3Window.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-FEILDim arrayItemsarrayItems(0) = 1arrayItems(1) = 2arrayItems(2) = 3Dim arrString = Join(arrayItems, ";")Window.returnvalue = arrStringDim 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 ExplicitSub Window_OnLoadDim abc(1,2,3)Window.ReturnValue = abcEnd 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 ExplicitSub Window_OnLoadsetReturnValue()msgbox window.returnValueEnd 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: 12/03/2009 15:10:11 – Revisjon: 3.1

Windows Internet Explorer 8, Windows Internet Explorer 7, Microsoft Internet Explorer 6.0, Microsoft Internet Explorer 6.0 SP1, Microsoft Internet Explorer 5.01 Service Pack 4

  • kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949
Tilbakemelding
tml>html>