Share via


Sécurité (Guide de programmation C#)

La sécurité est un aspect indispensable de chaque application C# et doit être considérée à chaque phase du développement : pas uniquement lorsque la conception et l'implémentation sont terminées.

Recommandations de sécurité spécifiques à C#

Cette liste ne constitue pas une liste exhaustive de problèmes de sécurité potentiels. Elle met en surbrillance quelques problèmes classiques qui doivent être portés à la connaissance des développeurs C#.

  • Faites appel à l'opérateur checked pour contrôler le contexte de vérification de dépassement de capacité pour les opérations arithmétiques de type intégral et les conversions.

  • 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 sur la base de noms de fichiers. 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, comme 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 de privilèges 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. Confirmez que le code natif est sécurisé, notamment en matière de saturation de mémoire tampon.

  • Utilisez avec prudence les délégués transmis à votre application.

  • Exécutez FxCop sur vos assemblys pour garantir la conformité aux instructions de conception Microsoft .NET Framework. FxCop peut également rechercher plus de 200 erreurs de code et afficher les avertissements correspondants.

Dans cette section

Les rubriques MSDN suivantes fournissent des informations détaillées sur la création de logiciels sécurisés et fiables.

Voir aussi

Concepts

Guide de programmation C#