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 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per