CA2143: Los métodos transparentes no deben usar peticiones de seguridad
Elemento | Valor |
---|---|
RuleId | CA2143 |
Category | Microsoft.Security |
Cambio importante | Problemático |
Causa
Un tipo o método transparente se marca mediante declaración con una demanda System.Security.Permissions.SecurityAction.Demand
o bien el método llama al método System.Security.CodeAccessPermission.Demand.
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
El código transparente en seguridad no debería ser responsable de comprobar la seguridad de una operación y, por consiguiente, no debería exigir permisos. El código transparente en seguridad debería utilizar peticiones completas para tomar decisiones de seguridad y el código crítico para la seguridad no debió confiar en el código transparente al realizar la petición completa. Cualquier código que realice comprobaciones de seguridad, como las demandas de seguridad, debe ser crítico para la seguridad.
Cómo corregir infracciones
En general, para corregir una infracción de esta regla, marque el método con el atributo SecuritySafeCriticalAttribute. También puede quitar la demanda.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla.
Ejemplo
La regla archiva el código siguiente porque un método transparente hace una demanda de seguridad declarativa.
using System;
using System.Security;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class TransparentMethodDemandClass
{
// CA2142 violation - transparent code using a Demand. This can be fixed by making the method safe critical.
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
public void TransparentMethod()
{
}
}
}
Consulte también
CA2142: El código transparente no debe protegerse con LinkDemands
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de