Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout
Important Il est possible que le présent document ne corresponde pas aux pratiques recommandées pour le développement actuel. Par ailleurs, il se peut que des liens de téléchargement et d'autres ressources ne soient plus valides. La version recommandée actuelle est disponible ici.

Meilleures pratiques de sécurité pour C++

Mise à jour : novembre 2007

Cette rubrique contient des informations sur les outils et les applications pratiques de sécurité recommandés. L'utilisation de ces ressources et de ces outils n'immunise pas les applications contre les attaques, mais diminue le risque de celles-ci.

Cette section traite des fonctionnalités de sécurité intégrées au compilateur et à l'éditeur de liens Visual C++.

/GS (Vérification de la sécurité de la mémoire tampon)

Cette option du compilateur indique au compilateur d'insérer le code de détection du débordement dans les fonctions qui courent un risque d'être exploitées. Lorsqu'un débordement est détecté, l'exécution est interrompue. Cette option est activée par défaut.

/SAFESEH (L'image est dotée de gestionnaires d'exceptions sécurisés)

Cette option de l'éditeur de liens indique à l'éditeur de liens d'inclure dans l'image de sortie une table qui contient l'adresse de chaque gestionnaire d'exceptions. Pendant l'exécution, le système d'exploitation utilise cette table pour s'assurer que seuls les gestionnaires d'exceptions légitimes sont exécutés. Cela contribue à empêcher l'exécution de gestionnaires d'exceptions introduits par une attaque malveillante à l'exécution. Cette option est désactivée par défaut.

/analyze (Analyse du code d'entreprise)

Cette option du compilateur active l'analyse du code, qui signale les problèmes de sécurité potentiels, tels que le dépassement de mémoire tampon, la mémoire non initialisée, le déréférencement de pointeur null et les fuites de mémoire. Cette option est désactivée par défaut. Pour plus d'informations, consultez Vue d'ensemble de l'analyse du code C/C++.

Pour Visual C++ 2005, la bibliothèque Runtime C (CRT) a été élargie afin de comprendre des versions sécurisées des fonctions posant des problèmes de sécurité. (La fonction strcpy de copie de chaîne non contrôlée, par exemple.) Les versions les plus anciennes et moins sûres de ces fonctions sont maintenant désapprouvées et leur utilisation entraîne donc des avertissements à la compilation. Les programmeurs sont fortement incités à utiliser les versions sécurisées de ces fonctions CRT plutôt que de supprimer ces avertissements de compilation. Pour plus d'informations, consultez Security Enhancements in the CRT.

Avec les itérateurs vérifiés, les utilisateurs des classes de conteneur de bibliothèque C++ standard sont prévenus des tentatives d'accès aux éléments situés hors des limites d'un conteneur. Pour plus d'informations, consultez Checked Iterators.

L'outil d'analyse du code managé, également connu sous le nom de FxCop, est un outil qui vérifie la conformité des assemblys aux règles de conception de Microsoft .NET Framework. FxCop analyse le code et les métadonnées de chaque assembly et recherche des défaillances dans les domaines suivants :

  • Conception des bibliothèques

  • Localisation

  • Conventions d'attribution d'un nom

  • Performances

  • Sécurité

L'outil d'analyse du code managé est inclus dans Visual Studio Team System et peut également être téléchargé à l'adresse http://www.gotdotnet.com/team/fxcop/.

Disponible dans le cadre de l'Application Compatibility Toolkit, l'Application Verifier (AppVerifier) est un outil qui peut aider les développeurs à identifier la compatibilité, la stabilité et les problèmes de sécurité potentiels des applications.

La fonction de l'AppVerifier est de surveiller l'usage que fait une application du système d'exploitation au cours de son exécution, notamment le système de fichiers, le Registre, la mémoire et l'API. L'outil fournit une aide à la correction des problèmes qu'il découvre au niveau du code source.

Le vérificateur vous permet d'exécuter les opérations suivantes :

  • Tester les erreurs potentielles de compatibilité des applications, provoquées par des erreurs de programmation courantes.

  • Rechercher dans une application les problèmes liés à la mémoire.

  • Déterminer la conformité d'une application avec diverses exigences des programmes d'attribution des logos « Conçu pour Windows XP » ou « Certifié pour Windows Server™ 2003 ».

  • Identifier les problèmes de sécurité potentiels d'une application.

Windows Application Verifier est disponible à l'adresse http://www.microsoft.com/windows/appcompatibility/appverifier.mspx.

Cette section propose une vue d'ensemble de deux fonctionnalités de sécurité liées du .NET Framework.

Sécurité d'accès du code

Décrit le système de sécurité du .NET Framework et la façon dont il s'interface avec le code de l'application.

Configuration de la stratégie de sécurité

Donne des indications et des outils pour affiner les stratégies de sécurité du .NET Framework.

L'utilisation de comptes utilisateur Windows appartenant au groupe Administrateurs expose les développeurs et, par extension, les utilisateurs, à des problèmes de sécurité. Pour plus d'informations, consultez Exécution en tant que membre du groupe Utilisateurs.

Le contrôle de compte d'utilisateur (UAC) est une fonctionnalité de Windows Vista dans laquelle les comptes d'utilisateurs ont des privilèges limités. Pour plus d'informations, consultez Répercussions du contrôle de compte utilisateur sur votre application.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft