Set di regole di sicurezza per codice gestito

Usare il set di regole di sicurezza Microsoft per l'analisi del codice legacy per ottimizzare il numero di potenziali problemi di sicurezza segnalati.

Regola Descrizione
CA2100 Controllare la vulnerabilità della sicurezza nelle query SQL
CA2102 Individuare le eccezioni non CLSCompliant nei gestori generali
CA2103 Controllare la sicurezza imperativa
CA2104 Non dichiarare tipi di riferimento modificabili in sola lettura
CA2105 I campi di matrici non devono essere di sola lettura
CA2106 Asserzioni protette
CA2107 Controllare l'uso di Deny e PermitOnly
CA2108 Controllare la sicurezza dichiarativa sui tipi di valori
CA2109 Controllare i gestori di eventi visibili
CA2111 I puntatori non devono essere visibili
CA2112 I tipi protetti non devono esporre campi
CA2114 La sicurezza del metodo deve essere un superset del tipo
CA2115 Chiamare GC.KeepAlive durante l'uso di risorse native
CA2116 I metodi APTCA devono chiamare solo metodi APTCA
CA2117 I tipi APTCA devono estendere solo tipi di base APTCA
CA2118 Verificare la sintassi di SuppressUnmanagedCodeSecurityAttribute
CA2119 Impostare come sealed i metodi che soddisfano interfacce private
CA2120 Proteggere i costruttori di serializzazione
CA2121 I costruttori statici devono essere privati
CA2122 Non esporre in modo indiretto metodi con richieste di collegamento
CA2123 Le richieste di collegamento negli override devono essere identiche a quelle nei metodi di base
CA2124 Eseguire il wrapping delle clausole finally vulnerabili in un try esterno
CA2126 Per le richieste di collegamento dei tipi sono necessarie richieste di ereditarietà
CA2130 Le costanti SecurityCritical devono essere Transparent
CA2131 I tipi SecurityCritical possono non partecipare all'equivalenza del tipo
CA2132 I costruttori predefiniti devono essere Critical almeno come i costruttori predefiniti del tipo base
CA2133 I delegati devono essere associati ai metodi con trasparenza consistente
CA2134 I metodi devono mantenere trasparenza consistente durante l'override dei metodi base
CA2135 Gli assembly di livello 2 non devono contenere LinkDemand
CA2136 I membri non devono avere annotazioni di trasparenza in conflitto
CA2137 I metodi Transparent devono contenere solo IL verificabile
CA2138 I metodi Transparent non devono chiamare i metodi con l'attributo SuppressUnmanagedCodeSecurity
CA2139 I metodi Transparent non possono usare l'attributo HandleProcessCorruptingExceptions
CA2140 Il codice Transparent non deve far riferimento a elementi SecurityCritical
CA2141 I metodi Transparent non devono soddisfare LinkDemands
CA2142 Il codice Transparent non deve essere protetto con LinkDemand
CA2143 I metodi Transparent non devono usare SecurityDemand
CA2144 Il codice Transparent non deve caricare assembly da matrici di byte
CA2145 I metodi Transparent non devono includere SuppressUnmanagedCodeSecurityAttribute
CA2146 I tipi devono essere Critical almeno come le interfacce e i tipi base relativi
CA2147 I metodi Transparent non possono usare asserzioni di sicurezza
CA2149 I metodi Transparent non devono effettuare chiamate nel codice nativo
CA2210 Gli assembly devono avere nomi sicuri validi
CA2300 Non usare il deserializzatore non sicuro BinaryFormatter
CA2301 Non chiamare BinaryFormatter.Deserialize senza aver prima impostato BinaryFormatter.Binder
CA2302 Assicurarsi che BinaryFormatter.Binder sia impostato prima di chiamare BinaryFormatter.Deserialize
CA2305 Non usare il deserializzatore non sicuro LosFormatter
CA2310 Non usare il deserializzatore non sicuro NetDataContractSerializer
CA2311 Non eseguire la deserializzazione senza aver prima impostato NetDataContractSerializer.Binder
CA2312 Assicurarsi di impostare NetDataContractSerializer.Binder prima della deserializzazione
CA2315 Non usare il deserializzatore non sicuro ObjectStateFormatter
CA2321 Non eseguire la deserializzazione con JavaScriptSerializer usando un oggetto SimpleTypeResolver
CA2322 Verificare che l'oggetto JavaScriptSerializer non sia inizializzato con SimpleTypeResolver prima di eseguire la deserializzazione
CA3001 Esaminare il codice per verificare la presenza di vulnerabilità di tipo SQL injection
CA3002 Esaminare il codice per verificare la presenza di vulnerabilità di tipo XSS
CA3003 Esaminare il codice per verificare la presenza di vulnerabilità di tipo file path injection
CA3004 Esaminare il codice per verificare la presenza di vulnerabilità di tipo diffusione di informazioni
CA3005 Esaminare il codice per verificare la presenza di vulnerabilità di tipo LDAP injection
CA3006 Esaminare il codice per verificare la presenza di vulnerabilità di tipo process command injection
CA3007 Esaminare il codice per verificare la presenza di vulnerabilità di tipo reindirizzamento aperto
CA3008 Esaminare il codice per verificare la presenza di vulnerabilità di tipo XPath injection
CA3009 Esaminare il codice per verificare la presenza di vulnerabilità di tipo XML injection
CA3010 Esaminare il codice per verificare la presenza di vulnerabilità di tipo XAML injection
CA3011 Esaminare il codice per verificare la presenza di vulnerabilità di tipo DLL injection
CA3012 Esaminare il codice per verificare la presenza di vulnerabilità di tipo regex injection
CA5358 Non usare modalità crittografia non sicure
CA5403 Non impostare il certificato come hardcoded