Ensemble de règles des règles de sécurité pour le code managé

Utilisez l’ensemble de règles de sécurité Microsoft pour l’analyse du code hérité pour optimiser le nombre de problèmes de sécurité potentiels signalés.

Règle Description
CA2100 Vérifier si les requêtes SQL présentent des failles de sécurité
CA2102 Interceptez les exceptions non CLSCompliant dans les gestionnaires généraux
CA2103 Vérifiez la sécurité impérative
CA2104 Ne déclarez pas les types référence mutables en lecture seule
CA2105 Les champs de tableau ne doivent pas être en lecture seule
CA2106 Assertions sécurisées
CA2107 Passez en revue l'utilisation des méthodes Deny et PermitOnly
CA2108 Vérifiez la sécurité déclarative dans les types valeur
CA2109 Passez en revue les gestionnaires d'événements visibles
CA2111 Les pointeurs ne doivent pas être visibles
CA2112 Les types sécurisés ne doivent pas exposer de champs
CA2114 La sécurité de la méthode doit être un sur-ensemble du type
CA2115 Appelez GC.KeepAlive lorsque vous utilisez des ressources natives
CA2116 Les méthodes APTCA doivent uniquement appeler des méthodes APTCA
CA2117 Les types APTCA doivent uniquement étendre des types de base APTCA
CA2118 Vérifier l'utilisation de SuppressUnmanagedCodeSecurityAttribute
CA2119 Scellez les méthodes qui satisfont les interfaces privées
CA2120 Sécurisez les constructeurs de sérialisation
CA2121 Les constructeurs statiques doivent être privés
CA2122 N'exposez pas indirectement des méthodes avec des demandes de liaison
CA2123 Les demandes de liaison de substitution doivent être identiques au composant de base
CA2124 Incluez dans un wrapper les clauses finally vulnérables dans un bloc try externe
CA2126 Les demandes de liaison de type exigent des demandes d'héritage
CA2130 Les constantes critiques de sécurité doivent être transparentes
CA2131 Les types critiques de sécurité ne peuvent pas participer à l'équivalence des types
CA2132 Les constructeurs par défaut doivent être au moins aussi critiques que les constructeurs par défaut de type de base
CA2133 Les délégués doivent lier les méthodes avec une transparence cohérente
CA2134 La transparence des méthodes doit rester cohérente lors de la substitution de méthodes de base
CA2135 Les assemblys de niveau 2 ne doivent pas contenir de LinkDemands
CA2136 Les membres ne doivent pas avoir d'annotations de transparence conflictuelles
CA2137 Les méthodes transparentes doivent contenir uniquement des IL vérifiables
CA2138 Les méthodes transparentes ne doivent pas appeler les méthodes ayant l'attribut SuppressUnmanagedCodeSecurity
CA2139 Les méthodes transparentes ne peuvent pas utiliser l'attribut HandleProcessCorruptingExceptions
CA2140 Le code transparent ne doit pas faire référence à des éléments critiques de sécurité
CA2141 Les méthodes transparentes ne répondent pas aux LinkDemands
CA2142 Le code transparent ne doit pas être protégé avec des LinkDemands
CA2143 Les méthodes transparentes ne doivent pas utiliser de demandes de sécurité
CA2144 Le code transparent ne doit pas charger d'assemblys depuis des tableaux d'octets
CA2145 Les méthodes transparentes ne doivent pas être décorées avec SuppressUnmanagedCodeSecurityAttribute
CA2146 Les types doivent être au moins aussi critiques que les types de base et les interfaces
CA2147 Les méthodes transparentes ne peuvent pas utiliser d’assertions de sécurité
CA2149 Les méthodes transparentes ne doivent pas appeler du code natif
CA2210 Les assemblys doivent porter des noms forts valides
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
CA5358 Ne pas utiliser de modes de chiffrement non sécurisés
CA5403 Ne pas coder en dur le certificat