CA2130 : Les constantes critiques de sécurité doivent être transparentes
Élément | Valeur |
---|---|
ID de la règle | CA2130 |
Category | Microsoft.Security |
Modification avec rupture | Rupture |
Cause
Un champ constant ou un membre d’énumération est marqué avec SecurityCriticalAttribute.
Notes
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
La mise en application de la transparence n’est pas effectuée pour les valeurs de constante car les compilateurs alignent les valeurs de constante afin qu’aucune recherche ne soit requise au moment de l’exécution. Les champs constants doivent être transparents de sécurité (security-transparent) afin que les relecteurs de code ne supposent pas que le code transparent ne peut pas accéder à la constante.
Comment corriger les violations
Pour corriger une violation de cette règle, supprimez l’attribut SecurityCritical du champ ou de la valeur.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
Dans les exemples suivants, la valeur d’énumération EnumWithCriticalValues.CriticalEnumValue
et la constante CriticalConstant
déclenchent cet avertissement. Pour résoudre les problèmes, supprimez l’attribut [SecurityCritical
] pour les rendre transparents en matière de sécurité.
using System;
using System.Security;
//[assembly: SecurityRules(SecurityRuleSet.Level2)]
//[assembly: AllowPartiallyTrustedCallers]
namespace TransparencyWarningsDemo
{
public enum EnumWithCriticalValues
{
TransparentEnumValue,
// CA2130 violation
[SecurityCritical]
CriticalEnumValue
}
public class ClassWithCriticalConstant
{
// CA2130 violation
[SecurityCritical]
public const int CriticalConstant = 21;
}
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour