Sécurité (Guide de programmation C#)
Mise à jour : novembre 2007
La sécurité est un aspect indispensable de chaque application C# et elle doit être considérée à chaque phase du développement et 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 des problèmes de sécurité potentiels. Elle met en évidence des problèmes communs pour les 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 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 Détection et correction des erreurs du code managé.
Ressources de sécurité supplémentaires
Les sites Web de Microsoft suivants fournissent des informations détaillées à propos de la création de logiciel sécurisé et fiable.