CA2144: Il codice Transparent non deve caricare assembly da matrici di byte
Articolo | Valore |
---|---|
ID regola | CA2144 |
Category | Microsoft.Security |
Modifica | Interruzione |
Causa
Un metodo trasparente carica un assembly da una matrice di byte usando uno dei metodi seguenti:
Nota
Questa regola è stata deprecata. Per altre informazioni, vedere Regole deprecate.
Descrizione regola
La revisione di sicurezza per il codice trasparente non è accurata come la revisione di sicurezza per il codice critico, perché il primo non può eseguire azioni sensibili per la sicurezza. Assembly caricati da una matrice di byte potrebbero non essere notati nel codice trasparente e quella matrice di byte potrebbe contenere codice critico o ancora più importante codice critico per la sicurezza, che deve essere controllato. Pertanto, il codice trasparente non deve caricare assembly da una matrice di byte.
Come correggere le violazioni
Per correggere una violazione di questa regola, contrassegnare il metodo che carica l'assembly con SecurityCriticalAttribute o l'attributo SecuritySafeCriticalAttribute .
Quando eliminare gli avvisi
Non escludere un avviso da questa regola.
Esempio
La regola viene attivata nel codice seguente perché un metodo trasparente carica un assembly da una matrice di byte.
using System;
using System.IO;
using System.Reflection;
namespace TransparencyWarningsDemo
{
public class TransparentMethodsLoadAssembliesFromByteArraysClass
{
public void TransparentMethod()
{
byte[] assemblyBytes = File.ReadAllBytes("DependentAssembly.dll");
// CA2144 violation - transparent code loading an assembly via byte array. The fix here is to
// either make TransparentMethod critical or safe-critical.
Assembly dependent = Assembly.Load(assemblyBytes);
}
}
}
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per