Partager via


Avertissement de sécurité, boîte de dialogue (fichier projet MSBuild)

Mise à jour : novembre 2007

Dans Visual Studio 2005 et les versions ultérieures, vous pouvez personnaliser un fichier projet MSBuild pour redéfinir le processus de génération. Des parties du processus qui sont définies dans le fichier projet sont exécutées au moment du design immédiatement après qu'un projet a été chargé dans l'environnement de développement intégré (IDE). La boîte de dialogue Avertissement de sécurité détecte les fichiers projet personnalisés qui pourraient présenter des risques de sécurité et vous permet de choisir comment l'IDE doit ouvrir le projet.

Éléments d'interface

  • Plus de détails
    Ouvre une boîte de dialogue qui explique pourquoi le fichier projet a été déterminé comme étant un risque de sécurité potentiel.

  • Charger le projet pour le parcourir
    Ouvre le projet dans l'IDE avec plus de sécurité. Cette option vous permet de parcourir le contenu du projet, mais certaines fonctionnalités, telles qu'IntelliSense, sont restreintes. Lorsqu'un projet est chargé pour être parcouru, des actions telles que la génération, le nettoyage, la publication ou l'ouverture de concepteurs peuvent être encore potentiellement dangereuses.

  • Charger normalement le projet
    Ouvre normalement le projet dans l'IDE. Utilisez cette option si vous avez confiance en la source et avez connaissance des risques potentiels encourus. L'IDE ne restreint aucune fonctionnalité du projet et ne vous sollicitera plus pour ce projet.

  • Me demander pour chaque projet dans cette solution
    Sélectionnez cette option si vous souhaitez être sollicité pour chaque projet de la solution.

Déterminer les fichiers projet potentiellement dangereux

Un fichier peut être déterminé comme posant un problème de sécurité potentiel pour plusieurs raisons. Celles-ci sont les suivantes :

  • Le fichier projet contient un ou plusieurs éléments Import non-standard.

  • Le fichier projet substitue une ou plusieurs cibles potentiellement dangereuses. Pour plus d'informations sur les cibles, consultez Cibles de MSBuild.

  • Le fichier projet substitue une ou plusieurs propriétés potentiellement dangereuses. Pour plus d'informations sur les propriétés, consultez Propriétés MSBuild.

  • Le fichier projet définit un ou plusieurs éléments potentiellement dangereux. Pour plus d'informations sur les éléments, consultez Éléments MSBuild.

  • Le fichier projet contient un ou plusieurs éléments UsingTask.

  • Les éléments du projet sont localisés dans un emplacement potentiellement dangereux.

Éléments Import non-standard

Une liste de fichiers .targets standard est stockée dans le Registre à l'entrée HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports\. Si un fichier projet importe un fichier .targets qui n'est pas stocké dans le Registre, il est déterminé comme étant un problème de sécurité potentiel.

Cibles potentiellement dangereuses

L'IDE exécute plusieurs cibles pendant le chargement d'un projet. Si l'une de ces cibles a été substituée dans un fichier projet personnalisé, il est reconnu comme étant un problème de sécurité potentiel. Les cibles que l'IDE exécute pendant le chargement d'un projet comprennent notamment :

  • Compile

  • GetFrameworkPaths

  • AllProjectOutputGroupsDependencies

  • AllProjectOutputGroups

  • CopyRunEnvironmentFiles

  • ResolveComReferences

  • ResolveAssemblyReferences

  • ResolveNativeReferences

Propriétés potentiellement dangereuses

La liste suivante explique les types de propriétés de base potentiellement dangereux :

  • Propriétés utilisées dans l'attribut DependsOn de cibles potentiellement dangereuses.

  • Propriétés utilisées dans les attributs Project d'éléments Import utilisés dans des fichiers .targets sûrs.

  • Propriétés utilisées par des cibles potentiellement dangereuses ou leurs tâches.

  • Propriétés qui commencent par un trait de soulignement (_).

  • Il existe également des propriétés spéciales utilisées par l'IDE pour gérer des cibles, des éléments et des propriétés potentiellement dangereuses. Ces propriétés ne peuvent pas être substituées dans un fichier projet. Les propriétés spéciales sont les suivantes :

  • LoadTimeSensitiveTargets

  • LoadTimeSensitiveProperties

  • LoadTimeSensitiveItems

  • LoadTimeCheckItemLocation

Éléments potentiellement dangereux

Certains éléments utilisés par des fichiers .targets importés ne peuvent pas être substitués dans un fichier projet. Si un ou plusieurs de ces éléments sont substitués, le projet est considéré comme étant un problème de sécurité potentiel.

Éléments UsingTask

Une tâche personnalisée peut exécuter un code unsafe. Par conséquent, tous les fichiers projet qui contiennent un ou plusieurs éléments UsingTask sont considérés comme posant des problèmes de sécurité potentiels.

Éléments de projets à des emplacements potentiellement dangereux

Certains éléments de fichiers .targets sûrs définissent leur chemin d'accès en fonction de propriétés de projet définies par l'utilisateur. Pour empêcher un élément d'écraser un fichier important, les fichiers projet qui contiennent des chemins d'accès d'élément équivalant à l'un des emplacements suivants, ou à n'importe quel sous-répertoire de ces emplacements, sont considérés comme étant des problèmes de sécurité potentiels à moins qu'ils soient également localisés dans ou sous le répertoire du fichier solution ou du fichier projet :

  • Le répertoire racine de tout lecteur.

  • Le répertoire Windows, par exemple, C:\Windows\.

  • Le répertoire Program Files,par exemple, C:\Program Files\.

Voir aussi

Concepts

MSBuild

Autres ressources

Référence MSBuild

Concepts MSBuild