ho trovato il seguente articolo di MSDN su questo argomento:
Security Considerations for Reflection
risposta di Jeff Questo articolo di eco:
Riflessione offre la possibilità di ottenere informazioni sui tipi e membri e per accedere ai membri. L'accesso ai membri non pubblici potrebbe creare un rischio per la sicurezza. Pertanto, il codice che accede ai membri non pubblici richiede ReflectionPermission con i flag appropriati .
Tuttavia, non credo che questo rischio possa essere sfruttato tra gli account di hosting del cliente. Sembra che questo rappresenterebbe solo un rischio personale. Ad esempio, usando la reflection potrei esplorare i miei propri assembly nel mio ambiente di hosting.Altri clienti, tuttavia, non hanno potuto utilizzare la riflessione per esplorare gli assembly my. Potrebbero esplorare solo gli loro assembly.
Questo potrebbe rappresentare un problema per una singola applicazione Web che coinvolge più team di sviluppo. Un team di sviluppo potrebbe utilizzare la riflessione per esplorare gli altri gruppi del team di sviluppo.
Tuttavia, questo è uno scenario raro per un ambiente di hosting condiviso. La maggior parte dei siti di hosting condiviso coinvolge un team molto piccolo che ha accesso completo allo al codice. In altre parole, non ci sono segreti. Finché l'assemblaggio è al sicuro da altri clienti di hosting condiviso, non è un problema.
attivazione di riflessione non dovrebbe porre alcun rischio per le applicazioni di web hosting più comune:
<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/>
favore correggetemi se sbaglio.
fonte
2009-07-21 20:07:04
Non capisco del tutto come funzioni. Ad esempio, in un ambiente di hosting condiviso come potrei accedere agli assiemi di un altro cliente? Come utilizzerei la riflessione per ispezionare il contenuto di proprietà e metodi privati? –
Se si sta eseguendo (ad esempio) un progetto di sito web, piuttosto che un progetto di applicazione Web e si fornisce all'utente un modo per caricare file sul proprio sito, è possibile caricare una pagina ASPX che viene compilata quando viene chiamata, se tale Riflessione utilizzata per leggere lo stato dell'applicazione, quindi è possibile che le stringhe di connessione ecc. possano essere accessibili. È una possibilità sottile, ma non per questo meno, da qui il "potrebbe" nel tuo link. Non dimenticare che alcuni host non sempre eseguono un ambiente di trust medio "vanilla", ma personalizzano le funzionalità che sono e non sono disponibili. –
Ben mi ha battuto. Aggiungerò solo un'altra cosa: in un ambiente di hosting condiviso, erediti (alcune delle) vulnerabilità di sicurezza delle altre applicazioni in esecuzione sul tuo server, quindi i tuoi colleghi non devono nemmeno essere maliziosi per rappresentare un pericolo per tu, solo negligente. –