Exécution de fichiers par lien hypertexte et boîte de dialogue Téléchargement de fichier dans Internet Explorer

Traductions disponibles Traductions disponibles
Numéro d'article: 232077 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F232077
Agrandir tout | Réduire tout

Sommaire

INTRODUCTION

De nombreux sites Web, en particulier sur les intranets d'entreprise, comportent des liens hypertexte vers des fichiers que l'utilisateur doit exécuter sur le système local. Pour des raisons évidentes de sécurité, Internet Explorer empêche toute action de lien hypertexte d'exécuter automatiquement un exécutable téléchargé ou tout autre fichier potentiellement dangereux sans l'affichage d'une sorte de fenêtre d'invite pour l'utilisateur.

Dans ces situations, il est impossible d'empêcher de quelque manière que ce soit l'affichage de la boîte de dialogue Téléchargement de fichier. Ceci inclut l'utilisation de balises HTML, d'un script dans la page, l'hébergement du contrôle WebBrowser, et la modification des options de zone de sécurité.

Malheureusement cette boîte de dialogue peut être perturbante pour une interface Web qui repose sur ces types de liens pour simplifier l'utilisation de fichiers exécutables stockés sur le serveur Web. Cet article présente deux méthodes fiables pour l'exécution automatique de fichiers par lien hypertexte.

Plus d'informations

Internet Explorer affiche la boîte de dialogue Téléchargement de fichier pour deux raisons principales : par sécurité et par choix. Pour plus de sécurité, le navigateur ne doit jamais exécuter automatiquement un fichier potentiellement dangereux sur le système de l'utilisateur sans intervention utilisateur possible. Par ailleurs, les sites Web utilisent habituellement des liens vers des fichiers exécutables pour deux raisons différentes : Le site souhaite que l'utilisateur exécute ou enregistre le fichier lié. Malheureusement, rien dans la spécification HTML pour la balise d'ancrage (<A>) ni aucun modèle d'objet de script actuel ne fournit au site Web un moyen d'indiquer ce qu'il souhaite pour un lien particulier. C'est donc à l'utilisateur de choisir. L'utilisateur a le choix entre exécuter ou enregistrer le fichier.

Internet Explorer décide d'afficher la boîte de dialogue Téléchargement de fichier tout d'abord en vérifiant l'extension du fichier puis en recherchant dans le Registre une application qui lit ce fichier. Pour la plupart des types de fichiers, l'utilisateur peut désactiver la case à cocher Toujours demander avant d'ouvrir ce type de fichier dans la boîte de dialogue, ce qui autorise Internet Explorer à ne pas afficher ultérieurement la boîte de dialogue pour ces types de fichier spécifiques. Les utilisateurs peuvent également modifier ce paramètre dans la boîte de dialogue Modification du type de fichier accessible à partir des Options de dossier de l'environnement en désactivant la case à cocher Confirmer l'ouverture après le téléchargement.

Toutefois, Internet Explorer contient une liste prédéfinie, codée en dur, des extensions de ficher approuvées. Ces extensions correspondent à des exécutables génériques et à d'autres types de fichiers qui sont capables de nuire au poste des utilisateurs en l'absence de mesures de sécurité. Il n'est pas possible d'empêcher l'affichage de la boîte de dialogue Téléchargement de fichier pour des fichiers de ce type. L'option Toujours m'avertir avant d'ouvrir ce type de fichier est grisée dans la boîte de dialogue et vous ne pouvez pas la sélectionner. Voici la liste des extensions de fichier pour ces types de fichier :
Réduire ce tableauAgrandir ce tableau
.ade.csh.lnk.mda.pif.vb
.adp.exe.mad.mdb.prf.vbe
.app.fxp.maf.mde.prg.vbs
.asp.hlp.mag.mdt.pst.vsd
.bas.hta.mam.mdw.reg.vsmacros
.bat.inf.maq.mdz.scf.vss
.cer.ins.mar.msc.scr.vst
.chm.isp.mas.msi.sct.vsw
.cmd.its.mat.msp.shb.ws
.com.js.mau.mst.shs.wsc
.cpl.jse.mav.ops.tmp.wsf
.crt.ksh.maw.pcd.url.wsh
Par convention, cet article se réfère à ces types de fichiers en tant que fichiers « exécutables ».

Envisagez à présent le scénario d'un site Web intranet d'entreprise simple qui comporte une liste de liens exécutables sur une page Web conviviale. Ces liens sont destinés à un téléchargement et à une exécution immédiats. Étant donné que les exécutables sont probablement garantis par l'entreprise comme étant fiables (au moins aussi fiables que tout autre programme informatique classique), l'affichage répété de la boîte de dialogue Téléchargement de fichier peut s'avérer à la longue ennuyeux pour les utilisateurs, en particulier si cette page est utilisée quotidiennement.

Même si les fichiers exécutables sont signés et que le signataire est approuvé par l'utilisateur, Internet Explorer affiche toujours la boîte de dialogue Téléchargement de fichier. Pire encore pour les malheureux auteurs Web, les liens hypertexte UNC Windows -- "\\server\share" qui ignorent le serveur Web ? font l'objet de la même iniquité.

Il existe pour les intranets d'entreprise une alternative aux purs liens hypertexte, appelée dans cet article liaison IFRAME. Les sites Internet ne peuvent pas appliquer cette méthode mais ils peuvent utiliser celle référencée dans cet article en tant que liaison de téléchargement de code Internet. (Cette dernière méthode est disponible également pour les entreprises.)

Remarque Aux niveaux de sécurité par défaut, les deux techniques affichent encore des boîtes de dialogue de sécurité. À la différence de la boîte de dialogue Téléchargement de fichier, cependant, toutes ces boîtes de dialogue de sécurité sont paramétrables à l'aide d'options de sécurité de zones standard. Pour la technique de liaison IFRAME, la boîte de dialogue qui s'affiche indique «  L'exécution d'une commande système sur ce système peut être dangereuse... » et elle est contrôlée par l'option de sécurité personnalisée Lancement des programmes et des fichiers dans un IFRAME. Pour la technique de liaison de téléchargement de code Internet, la boîte de dialogue qui peut s'afficher indique « Voulez-vous installer et exécuter ...» et elle est contrôlée par l'option de sécurité personnalisée Télécharger les contrôles ActiveX signés.

Si vous appliquez les techniques de cet article dans un environnement intranet, nous vous conseillons vivement de faire approuver et modifier ces modifications de paramètres pour tous les utilisateurs du site Web par les administrateurs d'entreprise. Internet Explorer Administration Kit (IEAK) constitue un mécanisme simple grâce auxquels les administrateurs peuvent contrôler et diffuser de tels paramètres de navigateur. Pour plus d'informations, reportez-vous au site Web de Microsoft TechNet à l'adresse suivante (en anglais) :
http://www.microsoft.com/technet/prodtechnol/ie/ieak/fr/default.mspx
Les sites Internet publics ne doivent pas obliger les utilisateurs à modifier des paramètres de sécurité pour afficher leur site Web. De fait, les sites qui nécessitent une modification de sécurité doivent demander à l'utilisateur d'ajouter le site concerné à sa liste de « Sites de confiance » dans la page de propriétés de sécurité Options Internet. Ce site spécifique fonctionnera alors avec un niveau de sécurité suffisamment bas qui permettra la mise en ?uvre des deux techniques décrites dans cet article sans l'affichage d'une invite.

Liaison IFRAME

Dans cet environnement, la page Web exploite la capacité d'Internet Explorer d'afficher des vues de liste style Explorateur dans des cadres flottants (<IFRAME>). Procédez comme suit :
  1. Déplacez les fichiers sur un serveur, partage et répertoire spécial sur l'Intranet d'entreprise auquel l'intégralité du public concerné est autorisé à accéder via Windows UNC.
  2. Créez un répertoire distinct pour chaque fichier exécutable et copiez les fichiers dans ces répertoires. Ces répertoires doivent être vides à l'exception d'un seul fichier exécutable.
  3. Chaque fois qu'un lien hypertexte vers l'exécutable est utilisé, incluez un code HTML sous la forme suivante :
    Click on the icon in the following window to run this very special 
    program automatically without annoying dialog boxes:
    
    <IFRAME SRC="\\server\share\directory"></IFRAME>
    						
    Notez que le code HTML pointe sur le répertoire dans lequel figure le fichier et non sur le fichier lui-même.
Le répertoire du fichier concerné apparaît dans une vue de type Explorateur. Lorsque l'utilisateur clique sur l'icône dans la vue, le fichier s'exécute tout comme une icône de fichier qui figurerait dans une fenêtre classique de l'Explorateur Windows.

liaison de téléchargement de code Internet

Dans cet environnement complexe, la page Web omet le processus ordinaire de téléchargement de fichier grâce à Internet Code Download. Internet Code Download est une fonctionnalité Internet Explorer qui permet aux pages Web de télécharger automatiquement des contrôles ActiveX et d'autres objets de code natif. Les fichiers obtenus via Internet Code Download passent par la structure de sécurité ActiveX, laquelle peut être contrôlée au moyen d'options de sécurité.
  1. Si le « fichier exécutable » n'est pas un PE signable (.exe) tel qu'un fichier .bat, il doit être intégré dans un fichier .cab avec un INF sous la forme suivante :
    [version]
       signature="$CHICAGO$"
       AdvancedINF=2.0
    [Add.Code]
       file.zzz=file.zzz
    [file.zzz]
       clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
       FileVersion=1,0,0,0
       hook=zzzinstaller
    [zzzinstaller]
       run=%EXTRACT_DIR%\file.zzz
    						
    Remplacez l'instance du fichier .zzz ci-dessus par le fichier exécutable à exécuter.

    Pour plus d'informations sur la façon d'intégrer le fichier .cab, reportez-vous au site Web MSDN (Microsoft Developer Network) à l'adresse suivante (en anglais) :
    http://msdn.microsoft.com/workshop/delivery/download/tutorials/button_download.asp
  2. Assurez-vous que le fichier .exe (ou .cab) est signé par du code. Si le fichier .exe n'est pas signé, vous pouvez le signer à l'aide des outils CryptoAPI Authenticode Code Signing. Pour plus d'informations, consultez la documentation CryptoAPI dans le Kit de développement de la plate-forme MSDN sous l'en-tête « Security ».

    Pour des raisons de sécurité, il est préférable de confier le traitement du processus de signature de code d'une entreprise à un autorité centrale qui est approuvée par toute l'entreprise. La signature de code nécessite soit l'achat de certificats coûteux auprès de fournisseurs externes tels que VeriSign soit la maintenance d'un serveur de certificats tel que Microsoft Certificate Server sur l'intranet
  3. Utilisez cet exemple de page comme modèle pour le lien et le script nécessaires au lancement du code signé sans invite :
    <HTML><HEAD><TITLE>Page of executable links</TITLE></HEAD>
    <BODY>
    <BR/>
    
    <!-- hyperlink uses central script function called linkit() -->
    <A HREF="" onclick="return linkit('signed-testfile.exe');">
    SIGNED-CLOCK.EXE</A>
    
    <SCRIPT>
    // linkit puts filename into HTML content and spews it into iframe
    function linkit(filename)
    {
       strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" +
          "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='";
       strpageend = "'></OBJECT></BODY></HTML>";
       runnerwin.document.open();
       runnerwin.document.write(strpagestart + filename + strpageend);
       window.status = "Done.";
       return false;  // stop hyperlink and stay on this page
    }
    </SCRIPT>
    
    <!-- hidden iframe used for inserting html content -->
    <IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/>
    
    </BODY></HTML>
    					
Les produits tiers mentionnés dans le présent article proviennent de sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.

Propriétés

Numéro d'article: 232077 - Dernière mise à jour: lundi 23 avril 2007 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Explorer 4.0 Édition 128 bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
Mots-clés : 
kbinfo kbnavigation kbsecurity kbdhtml KB232077
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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