CA2142: Jawny kod nie powinien być chroniony za pomocą LinkDemands
Pozycja | Wartość |
---|---|
Ruleid | CA2142 |
Kategoria | Microsoft.Security |
Zmiana powodująca niezgodność | Kluczowa |
Przyczyna
Metoda przezroczysta wymaga innego SecurityAction zapotrzebowania na zabezpieczenia.
Uwaga
Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.
Opis reguły
Ta reguła jest uruchamiana na przezroczystych metodach, które wymagają linkuDemands w celu uzyskania do nich dostępu. Przezroczysty kod zabezpieczeń nie powinien być odpowiedzialny za weryfikację zabezpieczeń operacji, a zatem nie powinien wymagać uprawnień. Ponieważ metody przezroczyste mają być neutralne pod względem bezpieczeństwa, nie powinny podejmować żadnych decyzji dotyczących zabezpieczeń. Ponadto bezpieczny kod krytyczny, który podejmuje decyzje dotyczące zabezpieczeń, nie powinien polegać na przezroczystym kodzie, aby wcześniej podjął taką decyzję.
Jak naprawić naruszenia
Aby naprawić naruszenie tej reguły, usuń żądanie łącza dla metody przezroczystej lub oznacz metodę SecuritySafeCriticalAttribute za pomocą atrybutu , jeśli wykonuje kontrole zabezpieczeń, takie jak wymagania dotyczące zabezpieczeń.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.
Przykład
W poniższym przykładzie reguła jest uruchamiana w metodzie, ponieważ metoda jest przezroczysta i jest oznaczona elementem LinkDemand PermissionSet zawierającym SecurityActionelement .
using System;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class TransparentMethodsProtectedWithLinkDemandsClass
{
// CA2142 violation - transparent code using a LinkDemand. This can be fixed by removing the LinkDemand
// from the method.
[PermissionSet(SecurityAction.LinkDemand, Unrestricted = true)]
public void TransparentMethod()
{
}
}
}
Nie pomijaj ostrzeżeń dla tej reguły.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla