Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

INTRODUCTION

La mise à jour de sécurité cumulative 974455 pour Internet Explorer (décrite dans MS09-054) a introduit des vérifications de sécurité « Type » dans plusieurs méthodes pour résoudre les vulnérabilités identifiées en terme de sécurité. Dans certains cas, ces nouveaux types de vérifications de sécurité peuvent engendrer des erreurs de script « Incompatibilité de type » dans les pages Web qui utilisent VBScript ou dans les pages Web qui utilisent un mélange de VBScript et de JavaScript.

Pour plus d'informations sur MS09-054, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

974455 MS09-054 : Mise à jour de sécurité cumulative pour Internet Explorer

Symptômes

Les pages Web qui utilisent VBScript comme langage de script côté client et qui utilisent les méthodes showModalDialog() ou showModelessDialog() peuvent rencontrer une erreur de script « Incompatibilité de type ». Microsoft a identifié les trois scénarios suivants dans lesquels une erreur de script « Incompatibilité de type » peut être générée :

  • showModalDialog()
    Le premier scénario implique de passer une valeur Array() en tant que paramètre vers la méthode showModalDialog() dans VBScript. La méthode showModalDialog() prend en charge un argument requis (sURL) et deux arguments optionnels (vArguments et sFeatures). Le paramètre vArguments est un paramètre type VARIANT qui spécifie les arguments à utiliser lors de l'affichage du document. Si un développeur décide de passer directement un Array() vers le paramètre optionnel vArguments, une erreur de script « Incompatibilité de type » se produira.


    Pour plus d'informations sur la méthode showModalDialog, consultez la page Web Microsoft MSDN suivante :

    http://msdn.microsoft.com/fr-fr/library/ms536759(VS.85).aspx

  • showModelessDialog()
    Le deuxième scénario implique de passer une valeur Array() en tant que paramètre vers la méthode showModelessDialog() dans VBScript. La méthode showModelessDialog() prend en charge un argument requis (sURL) et deux arguments optionnels (vArguments et sFeatures). Le paramètre vArguments est un paramètre type VARIANT qui spécifie les arguments à utiliser lors de l'affichage du document. Si un développeur décide de passer directement un Array() vers le paramètre optionnel vArguments, une erreur de script « Incompatibilité de type » se produira.



    Pour plus d'informations sur la méthode showModelessDialog, consultez la page Web Microsoft MSDN suivante :

    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>

  • returnValue
    Le troisième scénario implique la configuration explicite de la propriété returnValue d'une fenêtre de dialogue modale. La propriété returnValue est une propriété lecture/écriture qui n'a pas de valeur par défaut. Selon la documentation sur MSDN, la propriété returnValue s'applique uniquement aux fenêtres créées avec la méthode showModalDialog(). Si un développeur décide de configurer explicitement la propriété returnValue d'une fenêtre de dialogue modale avec une valeur Array() dans VBScript, une erreur de script « Incompatibilité de type » se produira.


    Pour plus d'informations sur la propriété return Value, consultez la page Web Microsoft MSDN suivante :

    http://msdn.microsoft.com/fr-fr/library/ms534371(VS.85).aspx

Actuellement, Microsoft n'a pas observé d'erreurs de script « Incompatibilité de type » engendrées par la mise à jour de sécurité cumulative 974455 dans les pages Web qui utilisent JavaScript comme seul langage de script côté client. Seules les pages Web qui utilisent la méthode showModalDialog(), la méthode showModelessDialog() ou la propriété returnValue dans VBScript semblent être affectées. Si la page Web contient un mélange de VBScript et de JavaScript, elle peut être affectée si elle utilise les méthodes ou les propriétés abordées plus haut dans VBScript ou si elle utilise l'objet VBArray. L'utilisation de l'objet VBArray est inhabituelle et les scénarios qui impliquent VBArray ne sont pas couverts par cet article de la Base de connaissances.

Cause

La mise à jour de sécurité cumulative pour Internet Explorer MS09-054 a été publiée pour résoudre les vulnérabilités identifiées en terme de sécurité dans Internet Explorer. Dans le cadre de la mise à jour de sécurité cumulative, Internet Explorer a introduit de nouvelles vérifications des casts non voulus des paramètres type VARIANT dans les types de données dangereuses. D'autres vérifications de sécurité imposent d'autres contraintes de sécurité pour les paramètres de type VARIANT qui sont passés dans le cadre de variables contrôlées par l'utilisateur pour le protéger de certaines attaques. Ces vérifications supplémentaires peuvent affecter des scénarios de navigation légitimes qui utilisent des types de données VARIANT.

Résolution

Pour résoudre ce problème, installez la mise à jour 976749 après avoir installé la mise à jour de sécurité 974455. Pour plus d'informations sur ce problème, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

976749 Une mise à jour est disponible pour Internet Explorer ; elle résout des problèmes qui surviennent lorsque vous appliquez la mise à jour de sécurité 974455 (MS09-054)
Important N'installez pas la mise à jour 976749 si vous n'avez pas installé la mise à jour de sécurité 974455. Si vous installez la mise à jour 976749 sans avoir préalablement installé la mise à jour de sécurité 974455, il est possible qu'Internet Explorer ne fonctionne pas correctement. Si cela se produit, désinstallez la mise à jour 976749, installez la mise à jour de sécurité 974455, puis réinstallez la mise à jour 976749.


Contournement

Nous vous conseillons de continuer d'appliquer la mise à jour de sécurité cumulative 974455 et d'installer la mise à jour 976749 si les symptômes décrits dans cet article se manifestent. Les clients qui décident de supprimer la mise à jour de sécurité cumulative exposent leur système aux dangers.


En ce qui concerne le premier scénario et le deuxième scénario expliqués dans la section « Symptômes », vous pouvez appliquer une solution de contournement si vous ne voulez pas installer la mise à jour de sécurité 974455. Pour contourner ce problème, déterminez de manière explicite la variable Array() dans une variable VBScript. Les tableaux peuvent être passés vers les méthodes showModalDialog() ou showModelessDialog() sans erreur de script « Incompatibilité de type ».

Par exemple, le VBScript suivant engendrera une erreur de script « Incompatibilité de type ».

// INCOMPATIBILITÉ DE TYPE
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))

Le VBScript suivant passera un tableau vers les méthodes showModalDialog() ou showModelessDialog() sans erreur de script « Incompatibilité de type ».

// PAS D'ERREUR INCOMPATIBILITÉ DE TYPE
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)

En ce qui concerne le troisième scénario dont nous avons parlé plus haut, vous pouvez appliquer une solution de contournement si vous ne voulez pas installer la mise à jour de sécurité 974455. Pour contourner le problème dans les scénarios dans lesquels une seule section Array() est passée vers la propriété returnValue, utilisez les fonctions Joindre et Fractionner VBScript. Cela vous permet de passer les valeurs Array() vers la propriété returnValue.

Par exemple, le VBScript suivant engendre une erreur de script « Incompatibilité de type ».

// INCOMPATIBILITÉ DE TYPE
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems

Lorsque vous utilisez les fonctions Joindre et Fractionner VBScript, vous pouvez configurer la propriété returnValue sans générer d'erreur de script « Incompatibilité de type ».

// PAS D'ERREUR INCOMPATIBILITÉ DE TYPE
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3

Dim arrString = Join(arrayItems, ";")
Window.returnvalue = arrString
Dim strTemp = window.showModalDialog(……)
Dim arrString = Join(arrayItems, ";")

En ce qui concerne le troisième scénario dont nous avons parlé plus haut, dans lequel les valeurs multidimensionnelles Array() ou les valeurs Array() qui présentent des objets sont passées à la propriété returnValue, vous pouvez appliquer une solution de contournement si vous ne voulez pas installer la mise à jour de sécurité 974455. Pour contourner le problème présenté dans ce scénario, vous pouvez utiliser une fonction JavaScript pour définir la propriété returnValue. Cette fonction JavaScript est disponible pour les sous-routines et les fonctions VBScript. Chaque valeur de propriété returnValue configurée par une fonction JavaScript sera disponible pour VBScript.



Par exemple, le VBScript suivant engendre une erreur de script « Incompatibilité de type ».

// INCOMPATIBILITÉ DE TYPE
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>

L'utilisation d'une fonction JavaScript avec un VBScript existant vous permet de configurer la propriété returnValue sans générer d'erreur de script « Incompatibilité de type ».

// PAS D'ERREUR INCOMPATIBILITÉ DE TYPE
<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>

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×