Compartir a través de


CA2103: Revisar la seguridad imperativa

Nombre de tipo

ReviewImperativeSecurity

Identificador de comprobación

CA2103

Categoría

Microsoft.Security

Cambio problemático

Causa

Un método utiliza la seguridad imperativa y podría estar creando el permiso utilizando la información de estado y los valores devueltos que pueden cambiar mientras la solicitud está activa.

Descripción de la regla

La seguridad imperativa utiliza objetos administrados para especificar permisos y acciones de seguridad durante la ejecución del código, en comparación con la seguridad declarativa que utiliza los atributos para almacenar permisos y acciones en metadatos. La seguridad imperativa es muy flexible porque se puede establecer el estado de un objeto de permiso y seleccionar las acciones de seguridad utilizando la información que no está disponible hasta el tiempo de ejecución. La desventaja de esta flexibilidad es que se corre el riesgo de que la información en tiempo de ejecución que utiliza para determinar el estado de un permiso se modifique si la acción se lleva a cabo.

Utilice la seguridad declarativa siempre que sea posible. Las solicitudes declarativas son más fáciles de entender.

Cómo corregir infracciones

Revise las solicitudes de seguridad imperativa para asegurase de que el estado del permiso no depende de la información que se modifica siempre que se esté utilizando el permiso.

Cuándo suprimir advertencias

Es seguro suprimir una advertencia de esta regla si el permiso no depende de los datos que cambian. Sin embargo, es mejor cambiar la demanda imperativa por su equivalente declarativa.

Vea también

Conceptos

Instrucciones de codificación segura

Otros recursos

Acceso a datos y modelado