Viene visualizzato un messaggio di errore di script VBScript che segnala una mancata corrispondenza in Internet Explorer dopo l'installazione dell'aggiornamento della protezione cumulativo 974455

Traduzione articoli Traduzione articoli
Identificativo articolo: 976949 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

INTRODUZIONE

L'aggiornamento cumulativo della protezione per Internet Explorer 974455, descritto in MS09-054 ha introdotto una verifica di sicurezza "Type" aggiuntiva all'interno di vari metodi per risolvere le vulnerabilitÓ della protezione identificate. In alcune circostanze, questi nuovi tipi di verifiche sulla protezione possono risultare nei messaggi di errore "Tipo non corrispondente" nelle pagine Web che utilizzano VBScript o nelle pagine Web che utilizzano contemporaneamente VBScript e JavaScript.

Per ulteriori informazioni su MS09-054, fare clic sul seguente numero dell'articolo per visualizzarlo nella Microsoft Knowledge Base:
974455 MS09-054: Aggiornamento cumulativo della protezione per Internet Explorer

Sintomi

Nelle pagine Web che utilizzano VBScript come il linguaggio di scripting sul lato client e che utilizzano i metodi showModalDialog o showModelessDialog possono verificarsi errori di script come "Tipo non corrispondente". Microsoft ha identificato le seguenti tre condizioni in cui un errore di script come"Tipo non corrispondente" pu˛ essere generato:
  • showModalDialog()
    La prima condizione implica il passaggio di un valore Array() come parametro al metodo showModalDialog() in VBScript. Il metodo showModalDialog() supporta un argomento obbligatorio (sURL) e due argomenti opzionali (vArguments e sFeatures). Il parametro vArguments Ŕ di tipo VARIANT che specifica gli argomenti da utilizzare quando si visualizza il documento. Se uno sviluppatore decide di passare un Array() direttamente al parametro opzionale vArguments, si verificherÓ un errore di script "Tipo non corrispondente".

    Per ulteriori informazioni sul metodo showModalDialog, visitare la seguente pagina Web MSDN di Microsoft:
    http://msdn.microsoft.com/it-it/library/ms536759(VS.85).aspx
  • showModelessDialog()
    La seconda condizione implica il passaggio di un valore Array() come parametro al metodo showModelessDialog() in VBScript. Il metodo showModelessDialog() supporta un argomento obbligatorio (sURL) e due argomenti opzionali (vArguments e sFeatures). Il parametro vArguments Ŕ di tipo VARIANT che specifica gli argomenti da utilizzare quando si visualizza il documento. Se uno sviluppatore decide di passare un Array() direttamente al parametro opzionale vArguments, si verificherÓ un errore di script "Tipo non corrispondente".

    Per ulteriori informazioni sul metodo showModelessDialog, visitare la seguente pagina Web MSDN di Microsoft:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    La terza condizione implica l'impostazione esplicita della proprietÓ di returnValue di una finestra di dialogo modale. La proprietÓ returnValue Ŕ una proprietÓ di lettura/scrittura che non ha un valore predefinito. In base alla documentazione su MSDN, la proprietÓ returnValue si applica solo a quelle finestre create con il metodo showModalDialog(). Se uno sviluppatore decide di impostare esplicitamente la proprietÓ returnValue di una finestra di dialogo modale a un valore Array() in VBScript, si verificherÓ un errore di script "Tipo non corrispondente".

    Per ulteriori informazioni sulla proprietÓ returnValue, visitare la seguente pagina Web MSDN di Microsoft:
    http://msdn.microsoft.com/it-it/library/ms534371(VS.85).aspx
Attualmente, Microsoft non ha osservato l'errore di script "Tipo non corrispondnete" derivanti dall'aggiornamento cumulativo della protezione 974455 nella pagina Web che utilizza JavaScript come unico linguaggio di scripting del lato client. Sembrano presentare problemi solamente le pagine Web che utilizzano i metodi showModalDialog(), showModelessDialog(), o la proprietÓ returnValue all'interno di VBScript. Se la pagina Web contiene contemporaneamente sia VBScript che JavaScript, pu˛ presentare problemi se utilizza i metodi o le proprietÓ discussi precedentemente per quanto riguarda VBScript o se la pagina Web utilizza l'oggetto VBArray. L'utilizzo dell'oggetto VBArray non Ŕ comune, le condizioni relative a VBArray non verranno discusse in questo articolo della Knowledge Base.

Cause

Aggiornamento cumulativo della protezione per Internet Explorer MS09-054 Ŕ stato rilasciato per risolvere le vulnerabilitÓ della protezione identificate in Internet Explorer. In quanto parte dell'aggiornamento cumulativo della protezione, Internet Explorer ha introdotto nuovi controlli contro casting involontari di parametri VARIANT Type in dati pericolosi. Il controllo aggiuntivo della protezione impone restrizioni aggiuntive della protezione su parametri VARIANT Type che sono stati cambiati in variabili controllate dall'utente per consentire una protezione migliore da determinati tipi di attacco. Questi ulteriori controlli potrebbero influire su condizioni di navigazione valide che utilizzano dati di tipo VARIANT.

Risoluzione

Per risolvere il problema, installare l'aggiornamento 976749 dopo l'installazione dell'aggiornamento della protezione 974455. Per ulteriori informazioni su questo problema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
976749 ╚ disponibile un aggiornamento di Internet Explorer per la risoluzione dei problemi riscontrati dopo aver applicato l'aggiornamento della protezione 974455 (MS09-054)

Importante Non installare l'aggiornamento 976749 senza aver prima installato l'aggiornamento della protezione 974455. Se viene installato l'aggiornamento 976749 senza aver prima installato l'aggiornamento della protezione 974455, Internet Explorer potrebbe non funzionare correttamente. In questo caso, disinstallare l'aggiornamento 976749, installare l'aggiornamento della protezione 974455, quindi reinstallare l'aggiornamento 976749.

Workaround

Si consiglia di continuare ad applicare l'aggiornamento cumulativo della protezione 974455 e di installare l'aggiornamento 976749 se si riscontrano i sintomi descritti in questo articolo. I clienti che decidono di rimuovere l'aggiornamento cumulativo della protezione metteranno in pericolo il sistema in uso.

Per quanto riguarda la prima e la seconda condizione discussa nella sezione "Sintomi", Ŕ possibile implementare questa soluzione se non si desidera installare l'aggiornamento della protezione 974455. Per aggirare il problema, dichiarare esplicitamente la variabile Array() in una variabile di VBScript. Arrays pu˛ essere passato al metodo showModalDialog() o showModelessDialog() senza un errore di script "Tipo non corrispondente".

Ad esempio, il seguente VBScript causa un errore di script "Tipo non corrispondente".
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Arrays pu˛ essere passato al metodo showModalDialog() o showModelessDialog() senza un errore di script "Tipo non corrispondente".
// NO TYPE MISMATCH ERROR
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
Nella terza condizione discussa precedentemente, Ŕ possibile implementare una soluzione se non si desidera installare l'aggiornamento della protezione 974455. Per aggirare questo problema in condizioni in cui una singola dimensione del valore Array() passa alla proprietÓ returnValue utilizzare le funzioni VBScript Connetti e Dividi. In questo modo si passano valori Array() alla proprietÓ returnValue.

Ad esempio, il seguente VBScript causa l'errore di script "Tipo non corrispondente".

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Quando vengono utilizzate le funzioni VBScript Connetti e Dividi, Ŕ possibile impostare le proprietÓ returnValue senza generare l'errore di script "Mancata corrispondenza tipo".

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

Nella terza condizione discussa precedentemente, in cui valori Array() multidimensionali o valori Array() che hanno oggetti passati alla proprietÓ returnValue Ŕ possibile implementare questa soluzione se non si desidera installare l'aggiornamento 974455. Per aggirare questo problema in questa condizione, Ŕ possibile utilizzare la funzione JavaScript per impostare la proprietÓ returnValue. Questa funzione JavaScript Ŕ disponibile per le funzioni e subroutine VBScript. Qualsiasi valore di proprietÓ returnValue impostato da una funzione JavaScript sarÓ disponibile per VBScript.

Ad esempio, il seguente VBScript causa l'errore di script "Tipo non corrispondente".
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_onLoad()
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Quando le funzioni JavaScript vengono utilizzate insieme a un VBScript esistente, Ŕ possibile impostare la proprietÓ returnValue senza generare l'errore di script "Tipo non corrispondente".
// 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 ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Le informazioni in questo articolo si applicano a".

ProprietÓ

Identificativo articolo: 976949 - Ultima modifica: martedý 1 dicembre 2009 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Windows Internet Explorer 8áalle seguenti piattaforme
    • 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áalle seguenti piattaforme
    • 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áalle seguenti piattaforme
    • 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áalle seguenti piattaforme
    • 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áalle seguenti piattaforme
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
Chiavi:á
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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