Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La scrittura di un visualizzatore comporta possibili minacce alla sicurezza. Attualmente non esistono exploit noti per queste potenziali minacce, ma gli sviluppatori devono essere a conoscenza di essi e adottare precauzioni di sicurezza appropriate, come descritto qui, per proteggersi dagli exploit futuri.
I visualizzatori del debugger richiedono privilegi maggiori di quelli consentiti da un'applicazione parzialmente attendibile. I visualizzatori non verranno caricati quando sei interrotto nel codice con attendibilità parziale. Per eseguire il debug usando un visualizzatore, è necessario eseguire il codice con attendibilità totale.
Annotazioni
La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare mezzi alternativi per eseguire attività di sicurezza.
Possibile componente di debug malevolo
I visualizzatori sono costituiti da almeno due classi: una sul lato debugger e una sul lato debug. I visualizzatori vengono spesso distribuiti in assembly separati inseriti in directory speciali, ma possono anche essere caricati dal programma di debug. In questo caso, il debugger estrae il codice dall'oggetto di debug e lo esegue all'interno del debugger con attendibilità totale.
L'esecuzione di codice sul lato del debuggee con massima attendibilità diventa problematica quando il programma sottoposto a debug non è completamente attendibile. Se un visualizzatore tenta di caricare un assembly di attendibilità parziale dal debug nel debugger, Visual Studio terminerà il visualizzatore.
Tuttavia, esiste ancora una vulnerabilità secondaria. Il lato debuggee può essere associato a un lato del debugger caricato da un'altra origine (non il debuggee). Il lato debug può quindi indicare che il lato debugger attendibile può eseguire azioni per suo conto. Se la classe sul lato del debugger attendibile espone un meccanismo di "elimina questo file", ad esempio, il programma in debug a fiducia parziale potrebbe richiamare tale meccanismo quando l'utente utilizza il suo visualizzatore.
Per attenuare questa vulnerabilità, tenere presente le interfacce esposte dal visualizzatore.