Sécurité et programmation (C# et Visual Basic)

Les développeurs doivent résoudre des problèmes de sécurité essentiels lorsqu'ils commencent à utiliser le .NET Framework.Cette vue d'ensemble décrit les applications Windows et applications Web, l'implémentation, le débogage et les phases de déploiement du développement.

Vue d'ensemble

Visual Studio vous permet de contrôler la sécurité des applications en cours d'exécution.Même si vous avez le contrôle grâce au .NET Framework, vous devez réfléchir à votre programmation en tenant compte des problèmes de sécurité.Certains de ces problèmes doivent être résolus afin de pouvoir créer des applications conviviales et faciles à utiliser pour vos utilisateurs.

Il existe trois situations courantes où vous serez confronté à des problèmes de sécurité :

  • Autorisations : l'utilisateur qui exécute votre application peut refuser des privilèges à celle-ci.Ce type de situation peut se produire si elle s'exécute à partir d'un emplacement qui, conformément aux spécifications de l'utilisateur, ne sera pas autorisé à accéder à certaines ressources système.Par exemple, l'utilisateur peut configurer le Common Language Runtime pour refuser des privilèges de fichier à toute application qui est stockée sur un lecteur réseau.Vous devez en tenir compte dans votre travail et écrire le code qui répond harmonieusement aux refus.Pour plus d'informations, consultez Stratégie de sécurité .NET Framework.

  • Applications Web : vous devez empêcher les utilisateurs qui accèdent à vos applications Web depuis vos serveurs Web d'exécuter du code nuisible sur vos serveurs ou d'endommager les données qui s'y trouvent.Pour plus d'informations, consultez Sécurité ASP.NET.

  • Configuration de Visual Studio : selon la configuration de Visual Studio, votre serveur risque d'être plus ou moins exposé à des attaques par du code nuisible.Pour plus d'informations, consultez User Rights and Visual Studio.

La sécurisation des ressources est un processus qui utilise plusieurs technologies et couvre l'ensemble du cycle de développement.En accordant un soin particulier à la conception, à l'implémentation, aux tests et au déploiement des applications, vous pouvez créer des applications très sécurisées.Les technologies de sécurité fournies par ASP.NET, le système d'exploitation et les navigateurs Web sont disponibles pour vous aider à sécuriser vos applications.

Recommandations de sécurité spécifiques

Cette liste ne constitue pas une liste exhaustive des problèmes de sécurité potentiels.Elle décrit des problèmes couramment rencontrés par les développeurs Visual Basic et C#.

  • Vérifiez que le contrôle de dépassement sur les entiers est activé.En C#, vous pouvez activer ce contrôle à l'aide du mot clé checked ou de la Paramètres de génération avancés, boîte de dialogue (C#).En Visual Basic, vous pouvez utiliser la Paramètres avancés du compilateur, boîte de dialogue (Visual Basic).

  • Utilisez toujours le type de données le plus restrictif pour les paramètres.Par exemple, pour passer une valeur dans une méthode qui décrit la taille d'une structure de données, utilisez un entier non signé plutôt qu'un entier.

  • Ne prenez pas de décisions en fonction des noms de fichier.Les noms de fichiers peuvent être exprimés de différentes façons, et le test d'un fichier spécifique risque d'être ignoré.

  • N'utilisez absolument jamais de mots de passe codés ou d'autres informations sensibles dans votre application.

  • Validez systématiquement les entrées utilisées dans le but de générer des requêtes SQL.

  • Validez toutes les entrées dans vos méthodes.Les méthodes d'expression régulière dans l'espace de noms System.Text.RegularExpressions sont utiles pour confirmer que l'entrée est de la forme appropriée, par exemple une adresse de messagerie.

  • N'affichez pas d'informations sur les exceptions : elles fournissent de précieux indices à tous les intrus éventuels.

  • Veillez à ce que votre application fonctionne en s'exécutant avec le moins d'autorisations possibles.Peu d'applications exigent qu'un utilisateur se connecte en tant qu'administrateur.

  • N'utilisez pas vos propres algorithmes de chiffrement.Utilisez les classes System.Security.Cryptography.

  • Donnez des noms forts à vos assemblys.

  • Ne stockez pas d'informations sensibles dans XML ou dans d'autres fichiers de configuration.

  • Vérifiez avec soin le code managé qui encapsule le code natif.Vérifiez que le code natif est sécurisé.

  • Utilisez avec prudence les délégués transmis à votre application depuis l'extérieur.

  • Exécutez l'outil d'analyse du code Visual Studio sur vos assemblys pour garantir la conformité avec les règles de conception de Microsoft .NET Framework.Cet outil peut également rechercher plus de 200 erreurs de code et afficher les avertissements correspondants.Pour plus d'informations, consultez Vue d'ensemble de l'analyse du code managé.

Ressources de sécurité supplémentaires

Les sites Web Microsoft suivants fournissent des informations détaillées sur la création de logiciels sécurisés et fiables.

Rubriques connexes

Titre

Description

Concepts de base de la sécurité .NET Framework

Fournit une vue d'ensemble de la sécurité .NET Framework et décrit des techniques de codage pour un environnement de confiance partielle.

Assistance au codage pour créer des applications sécurisées

Décrit les outils Visual Studio qui permettent de sécuriser un serveur de développement.

Sécurité et autorisations d'accès du code

Décrit les objets utilisés pour protéger des ressources et des opérations contre toute utilisation non autorisée.

Voir aussi

Tâches

Exemples de sécurité Visual Basic

Concepts

Sécurité dans Visual Studio

Instructions de codage sécurisé

Autres ressources

Sécurité des Windows Forms

Sécurité ASP.NET