État du port de la règle Fxcop
Si vous avez déjà utilisé l’analyse de code statique dans Visual Studio, vous vous demandez peut-être lesquelles de ces règles sont disponibles dans l’implémentation actuelle en tant qu’analyseurs .NET. Cette page répertorie les règles qui ont été portées. Consultez Règles non transférées pour celles qui n’ont pas été portées et indiquez s’il est prévu de les porter.
Règles transférées
La page de documentation générée automatiquement dans le référentiel roslyn-analyzers contient la liste la plus à jour des règles qui ont été transférées vers les analyseurs Roslyn. Cette page contient également des informations supplémentaires, par exemple si la règle est activée par défaut et si elle a un correctif de code associé. (Les correctifs de code sont des correctifs en un clic disponibles dans le menu d’icône d’ampoule de Visual Studio.)
À la date de la rédaction de cette page, la liste des règles FxCop qui ont été portées vers les analyseurs .NET comprend :
Identificateur de la règle | Intitulé |
---|---|
CA1000 | Ne pas déclarer de membres statiques sur les types génériques |
CA1001 | Les types qui possèdent des champs supprimables doivent être supprimables |
CA1002 | Ne pas exposer de listes génériques |
CA1003 | Utiliser les instances du gestionnaire d'événements génériques |
CA1005 | Éviter les paramètres excessifs sur les types génériques |
CA1008 | Les enums doivent avoir la valeur zéro |
CA1010 | Les collections doivent implémenter une interface générique |
CA1012 | Les types abstract ne doivent pas avoir de constructeurs |
CA1014 | Marquer les assemblys avec CLSCompliant |
CA1016 | Marquer les assemblys avec la version de l’assembly |
CA1017 | Marquer les assemblys avec ComVisible |
CA1018 | Marquer les attributs avec AttributeUsageAttribute |
CA1019 | Définir des accesseurs pour les arguments d'attribut |
CA1021 | Éviter les paramètres out |
CA1024 | Utiliser les propriétés lorsque cela est approprié |
CA1027 | Marquer les enums avec FlagsAttribute |
CA1028 | Enum Storage doit être Int32 |
CA1030 | Utiliser des événements lorsque cela est approprié |
CA1031 | Ne pas intercepter des types d'exception générale |
CA1032 | Implémenter des constructeurs d'exception standard |
CA1033 | Les méthodes d'interface doivent pouvoir être appelées par les types enfants |
CA1034 | Les types imbriqués ne doivent pas être visibles |
CA1036 | Substituer les méthodes sur les types Comparable |
CA1040 | Éviter les interfaces vides |
CA1041 | Fournir un message ObsoleteAttribute |
CA1043 | Utiliser un argument de chaîne ou intégral pour les indexeurs |
CA1044 | Les propriétés ne doivent pas être en écriture seule |
CA1045 | Ne pas passer de types par référence |
CA1046 | Ne pas surcharger l'opérateur égal à sur les types référence |
CA1047 | Ne pas déclarer les membres protégés dans les types sealed |
CA1050 | Déclarer les types dans des espaces de noms |
CA1051 | Ne pas déclarer de champs d'instances visibles |
CA1052 | Les types conteneurs statiques doivent être Static ou NotInheritable |
CA1053 | Les types de conteneurs statiques ne doivent pas comporter de constructeur (CA1053 fait partie de CA1052 pour les analyseurs .NET) |
CA1054 | Les paramètres URI ne doivent pas être des chaînes |
CA1055 | Les valeurs de retour URI ne doivent pas être des chaînes |
CA1056 | Les propriétés URI ne doivent pas être des chaînes |
CA1058 | Les types ne doivent pas étendre certains types de base |
CA1060 | Déplacer les P/Invoke vers une classe NativeMethods |
CA1061 | Ne pas masquer les méthodes de la classe de base |
CA1062 | Valider les arguments de méthodes publiques |
CA1063 | Implémenter IDisposable correctement |
CA1064 | Les exceptions doivent être publiques |
CA1065 | Ne pas lever d'exceptions dans les emplacements inattendus |
CA1066 | Le type {0} doit implémenter IEquatable<T>, car il remplace Equals |
CA1067 | Substituer 'Object.Equals(object)' au moment de l’implémentation de IEquatable<T> |
CA1303 | Ne pas passer de littéraux en paramètres localisés |
CA1304 | Spécifier CultureInfo |
CA1305 | Spécifier IFormatProvider |
CA1307 | Spécifier StringComparison pour clarifier |
CA1308 | Normaliser les chaînes en majuscules |
CA1309 | Utiliser la comparaison de chaînes ordinales |
CA1401 | Les P/Invoke ne doivent pas être visibles |
CA1501 | Éviter l'excès d'héritage |
CA1502 | Éviter l'excès de complexité |
CA1505 | Éviter le code impossible à maintenir |
CA1506 | Éviter les couplages de classe excessifs |
CA1700 | Ne nommez pas les valeurs enum 'Reserved' |
CA1707 | Les identificateurs ne doivent pas contenir de traits de soulignement |
CA1708 | Les identificateurs ne doivent pas différer uniquement par leur casse |
CA1710 | Les identificateurs doivent être dotés d'un suffixe correct |
CA1711 | Les identificateurs ne doivent pas porter un suffixe incorrect |
CA1712 | N'ajoutez pas le nom de type en guise de préfixe à des valeurs enum |
CA1713 | Les événements ne doivent pas être munis d'un préfixe Before ou After |
CA1714 | Les noms des enums Flags doivent être au pluriel |
CA1715 | Les identificateurs doivent être dotés d'un préfixe correct |
CA1716 | Les identificateurs ne doivent pas correspondre à des mots clés |
CA1717 | Seuls les noms des enums FlagsAttribute doivent être au pluriel |
CA1720 | L’identificateur contient le nom de type |
CA1721 | Les noms des propriétés ne doivent pas être identiques à ceux des méthodes Get |
CA1724 | Les noms de types ne doivent pas être identiques aux espaces de noms |
CA1725 | Les noms des paramètres doivent correspondre à la déclaration de base |
CA1801 | Passez en revue les paramètres inutilisés |
CA1802 | Utilisez des littéraux quand cela est approprié |
CA1805 | Ne pas initialiser inutilement |
CA1806 | N'ignorez pas les résultats des méthodes |
CA1810 | Initialisez les champs statiques de type référence en ligne |
CA1812 | Évitez les classes internes non instanciées |
CA1813 | Évitez les attributs unsealed |
CA1814 | Utilisez des tableaux en escalier à la place de tableaux multidimensionnels |
CA1815 | Remplacez Equals et l'opérateur égal à dans les types valeur |
CA1816 | Les méthodes Dispose doivent appeler SuppressFinalize |
CA1819 | Les propriétés ne doivent pas retourner des tableaux |
CA1820 | Vérifiez la présence de chaînes vides par la longueur de chaîne |
CA1821 | Supprimez les finaliseurs vides |
CA1822 | Marquez les membres comme static |
CA1823 | Évitez les champs privés inutilisés |
CA1824 | Marquer les assemblys avec NeutralResourcesLanguageAttribute |
CA1825 | Éviter les allocations de tableau de longueur nulle. |
CA2000 | Supprimer les objets avant la mise hors de portée |
CA2002 | Ne définissez pas un verrou sur des objets à identité faible |
CA2100 | Vérifier si les requêtes SQL présentent des failles de sécurité |
CA2101 | Spécifiez le marshaling pour les arguments de chaîne P/Invoke |
CA2109 | Passez en revue les gestionnaires d'événements visibles |
CA2119 | Scellez les méthodes qui satisfont les interfaces privées |
CA2153 | Ne pas intercepter les exceptions état altéré |
CA2200 | Levez à nouveau une exception pour conserver les détails de la pile. |
CA2201 | Ne levez pas des types d'exceptions réservés |
CA2207 | Initialisez les champs statiques des types valeur en ligne |
CA2208 | Instanciez les exceptions d'argument comme il se doit |
CA2211 | Les champs non constants ne doivent pas être visibles |
CA2213 | Les champs pouvant être supprimés doivent l’être |
CA2214 | N'appelez pas de méthodes substituables dans les constructeurs |
CA2215 | Les méthodes Dispose doivent appeler la méthode Dispose de la classe de base |
CA2216 | Les types pouvant être supprimés doivent déclarer un finaliseur |
CA2217 | Ne marquez pas les enums avec l'attribut FlagsAttribute |
CA2219 | Ne pas lever d’exceptions dans les clauses finally |
CA2225 | Les surcharges d'opérateur offrent d'autres méthodes nommées |
CA2226 | Les opérateurs doivent contenir des surcharges symétriques |
CA2227 | Les propriétés de collection doivent être en lecture seule |
CA2229 | Implémentez des constructeurs de sérialisation |
CA2231 | Surcharger l’opérateur d’égalité en remplaçant ValueType.Equals |
CA2234 | Passez des objets System.Uri à la place de chaînes |
CA2235 | Marquez tous les champs non sérialisés |
CA2237 | Marquez les types ISerializable comme étant sérialisables |
CA2241 | Indiquer le nombre correct d'arguments dans les méthodes de mise en forme |
CA2242 | Effectuez correctement des tests NaN |
CA2243 | Les littéraux de chaîne d'attribut doivent être analysés correctement |
CA2300 | N’utilisez pas le désérialiseur non sécurisé BinaryFormatter |
CA2301 | N’appelez pas BinaryFormatter.Deserialize sans définir BinaryFormatter.Binder au préalable |
CA2302 | Vérifiez que BinaryFormatter.Binder est défini avant d’appeler BinaryFormatter.Deserialize |
CA2305 | N’utilisez pas le désérialiseur non sécurisé LosFormatter |
CA2310 | N’utilisez pas le désérialiseur non sécurisé NetDataContractSerializer |
CA2311 | Ne désérialisez pas sans définir d’abord NetDataContractSerializer.Binder |
CA2312 | Vérifiez que NetDataContractSerializer.Binder est défini avant la désérialisation |
CA2315 | N’utilisez pas le désérialiseur non sécurisé ObjectStateFormatter |
CA2321 | Ne désérialisez avec JavaScriptSerializer à l’aide de SimpleTypeResolver |
CA2322 | Assurez-vous que JavaScriptSerializer n’est pas initialisé avec SimpleTypeResolver avant la désérialisation |
CA3001 | Passez en revue le code pour détecter les vulnérabilités de l’injection SQL |
CA3002 | Passez en revue le code pour détecter les vulnérabilités des scripts XSS |
CA3003 | Passez en revue le code pour détecter les vulnérabilités de l’injection de chemin de fichier |
CA3004 | Passez en revue le code pour détecter les vulnérabilités sur la divulgation d’informations |
CA3005 | Passez en revue le code pour détecter les vulnérabilités de l’injection LDAP |
CA3006 | Passez en revue le code pour détecter les vulnérabilités de l’injection de commande de processus |
CA3007 | Passez en revue le code pour détecter les vulnérabilités de la redirection ouverte |
CA3008 | Passez en revue le code pour détecter les vulnérabilités de l’injection XPath |
CA3009 | Passez en revue le code pour détecter les vulnérabilités de l’injection XML |
CA3010 | Passez en revue le code pour détecter les vulnérabilités de l’injection XAML |
CA3011 | Passez en revue le code pour détecter les vulnérabilités de l’injection de DLL |
CA3012 | Passez en revue le code pour détecter les vulnérabilités de l’injection regex |
CA3061 | Ne pas ajouter de schéma par URL |
CA3075 | Traitement DTD non sécurisé dans le code XML |
CA3076 | Traitement de script XSLT non sécurisé. |
CA3077 | Traitement non sécurisé dans le design d’API, XmlDocument et XmlTextReader |
CA3147 | Marquer les gestionnaires de verbes avec le jeton de validation antifalsification |
CA5350 | N’utilisez pas d’algorithmes de chiffrement faibles |
CA5351 | N’utilisez pas les algorithmes de chiffrement cassés |
CA5358 | Ne pas utiliser de modes de chiffrement non sécurisés |
CA5359 | Ne pas désactiver la validation de certificat |
CA5360 | Ne pas appeler de méthodes dangereuses dans la désérialisation |
CA5361 | Ne pas désactiver l’utilisation du chiffrement fort par Schannel |
CA5362 | Ne pas effectuer d’autoréférence dans une classe sérialisable |
CA5363 | Ne pas désactiver la validation de demandes |
CA5364 | Ne pas utiliser de protocoles de sécurité dépréciés |
CA5365 | Ne pas désactiver la vérification des en-têtes HTTP |
CA5366 | Utiliser XmlReader pour lire les données XML d’un jeu de données |
CA5367 | Ne pas sérialiser les types avec des champs de pointeur |
CA5368 | Définir ViewStateUserKey pour les classes dérivées de Page |
CA5369 | Utiliser XmlReader pour la désérialisation |
CA5370 | Utiliser XmlReader pour la validation du lecteur |
CA5371 | Utiliser XmlReader pour la lecture de schéma |
CA5372 | Utiliser XmlReader pour XPathDocument |
CA5373 | Ne pas utiliser la fonction de dérivation de clé obsolète |
CA5374 | Ne pas utiliser XslTransform |
CA5375 | Ne pas utiliser de signature d’accès partagé au compte |
CA5376 | Utiliser SharedAccessProtocol HttpsOnly |
CA5377 | Utiliser une stratégie d’accès au niveau du conteneur |
CA5378 | Ne pas désactiver ServicePointManagerSecurityProtocols |
CA5379 | Ne pas utiliser l’algorithme de fonction de dérivation de clés faibles |
CA9999 | Incompatibilité de version de l’analyseur |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour