CA2103: Revisar la seguridad imperativa
TypeName |
ReviewImperativeSecurity |
Identificador de comprobación |
CA2103 |
Categoría |
Microsoft.Security |
Cambio problemático |
Problemático |
Motivo
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.