Compartir a través de


Conjunto de reglas Reglas recomendadas administradas para código administrado

Se puede utilizar el conjunto de reglas administradas recomendadas de Microsoft para centrarse en los problemas más importantes de su código administrado, entre los que se incluyen las posibles vulnerabilidades de seguridad, los bloqueos de la aplicación y otros errores importantes de lógica y diseño.Se recomienda incluir este conjunto de reglas en todos los conjuntos de reglas personalizados que cree para sus proyectos.

Regla

Descripción

CA1001

Los tipos que poseen campos desechables deben ser desechables

CA1009

Declarar los controladores de evento correctamente

CA1016

Marcar los ensamblados con AssemblyVersionAttribute

CA1033

Los tipos secundarios deberían poder llamar a los métodos de interfaz

CA1049

Los tipos que poseen recursos nativos deben ser descartables

CA1060

Mover P/Invokes a la clase NativeMethods

CA1061

No ocultar métodos de clases base

CA1063

Implementar IDisposable correctamente

CA1065

No producir excepciones en ubicaciones inesperadas

CA1301

Evitar aceleradores duplicados

CA1400

Deben existir puntos de entrada P/Invoke

CA1401

Los elementos P/Invoke no deben estar visibles

CA1403

Los tipos de diseño automático no deben ser visibles para COM

CA1404

Llamar a GetLastError inmediatamente después de P/Invoke

CA1405

Los tipos base de tipos visibles para COM deben ser visibles para COM

CA1410

Los métodos de registro COM se deben adjuntar

CA1415

Declarar los elementos P/Invoke correctamente

CA1821

Quitar los finalizadores vacíos

CA1900

Los campos de tipos de valor deberían ser portátiles

CA1901

Las declaraciones P/Invoke deben ser portátiles

CA2002

No bloquear objetos con identidad débil

CA2100

Revisar las consultas SQL en busca de vulnerabilidades de seguridad

CA2101

Especificar cálculo de referencias para argumentos de cadena P/Invoke

CA2108

Revisar la seguridad declarativa en los tipos de valor

CA2111

Los punteros no deberían estar visibles

CA2112

Los tipos seguros no deberían exponer campos

CA2114

La seguridad del método debería ser un supraconjunto del tipo

CA2116

Los métodos APTCA deben llamar sólo a métodos APTCA

CA2117

Los tipos APTCA sólo amplían tipos base APTCA

CA2122

No exponer indirectamente métodos con peticiones de vínculos

CA2123

Las peticiones de vínculos de reemplazo deberían ser idénticas a la base

CA2124

Incluir cláusulas Finally vulnerables en un bloque Try externo

CA2126

Las peticiones de vínculos de tipos requieren peticiones de herencias

CA2131

Los tipos críticos para la seguridad no pueden participar en la equivalencia de tipos

CA2132

Los constructores predeterminados deben ser al menos tan críticos para la seguridad como los constructores predeterminados de tipo base.

CA2133

Los delegados deben enlazarse a métodos con una transparencia coherente

CA2134

Los métodos deben mantener una transparencia coherente cuando reemplazan métodos base

CA2137

Los métodos transparentes deben contener sólo IL que se pueda comprobar

CA2138

Los métodos transparentes no deben llamar a métodos con el atributo SuppressUnmanagedCodeSecurity

CA2140

El código transparente no debe hacer referencia a elementos críticos para la seguridad

CA2141

Los métodos transparentes no deben satisfacer LinkDemands

CA2146

Los tipos deben ser al menos tan críticos para la seguridad como sus interfaces y tipos base.

CA2147

Los métodos transparentes no pueden usar aserciones de seguridad

CA2149

Los métodos transparentes no deben llamar a código nativo

CA2200

Iniciar de nuevo para preservar los detalles de la pila

CA2202

No aplicar Dispose a los objetos varias veces

CA2207

Inicializar campos estáticos de tipo de valor insertados

CA2212

No marcar los componentes con servicio como WebMethod

CA2213

Aplicar Dispose a los campos a los que se pueda

CA2214

No llamar a métodos reemplazables en constructores

CA2216

Los tipos descartables deben declarar el finalizador

CA2220

Los finalizadores deben llamar al finalizador de la clase base

CA2229

Implementar constructores de serialización

CA2231

Sobrecargar el operador de igualdad al reemplazar el tipo de valor de igualdad

CA2232

Marcar puntos de entrada de Windows Forms con STAThread

CA2235

Marcar todos los campos no serializables

CA2236

Llamar a métodos de clase base en tipos ISerializable

CA2237

Marcar los tipos ISerializable con SerializableAttribute

CA2238

Implementar los métodos de serialización de forma correcta

CA2240

Implementar ISerializable correctamente

CA2241

Proporcionar argumentos correctos para los métodos de formato

CA2242

Prueba para NaN correcta