me encontré con el siguiente artículo de MSDN sobre este tema:
Security Considerations for Reflection
respuesta Este artículo de eco de Jeff:
Reflexión proporciona la capacidad de obtener información sobre los tipos y miembros y para acceder a los miembros. El acceso a miembros no públicos podría crear un riesgo de seguridad. Por lo tanto, el código que tiene acceso a los miembros que no son públicos requiere ReflectionPermission con los indicadores apropiados .
Sin embargo, no creo que este riesgo pueda explotarse entre las cuentas de alojamiento del cliente. Parece que esto solo representaría un riesgo personal. Por ejemplo, usando la reflexión, podría explorar mis propios ensamblajes en mi entorno de alojamiento.Sin embargo, otros clientes no pudieron usar el reflejo para explorar mis conjuntos. Solo pudieron explorar sus conjuntos.
Esto puede suponer un problema para una sola aplicación web que involucra a varios equipos de desarrollo. Un equipo de desarrollo podría usar la reflexión para explorar las asambleas de otro equipo de desarrollo.
Sin embargo, este es un escenario raro para un entorno de alojamiento compartido. La mayoría de los sitios web de alojamiento compartido involucran a un equipo muy pequeño que tiene acceso completo a todo el código. En otras palabras, no hay secretos. Siempre que el ensamblaje esté a salvo de otros clientes de hosting compartido, entonces no es un problema.
Habilitación de reflexión no debería plantear ningún riesgo para las aplicaciones web de alojamiento más comunes:
<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/>
Por favor, corríjanme si me equivoco.
No entiendo completamente cómo funciona esto. Por ejemplo, en un entorno de alojamiento compartido, ¿cómo accedería a los ensamblajes de otro cliente? ¿Cómo usaría la reflexión para inspeccionar el contenido de propiedades y métodos privados? –
Si está ejecutando (por ejemplo) un proyecto de sitio web, en lugar de un proyecto de aplicación web y le proporciona al usuario una forma de cargar archivos en su sitio, puede cargar una página ASPX que se compila cuando se llama, si eso usamos la reflexión para leer el estado de tu aplicación, entonces es posible que se puedan acceder a las cadenas de conexión, etc. Es una posibilidad pequeña, pero menos importante, de ahí el "podría" en su enlace. No olvide que algunos hosts no siempre ejecutan un entorno de confianza medio "vainilla", sino que personalizan qué características son y cuáles no están disponibles. –
Ben me ganó. Añadiré una cosa más: en un entorno de alojamiento compartido, heredas (algunas de) las vulnerabilidades de seguridad de las otras aplicaciones que se ejecutan en tu servidor, por lo que tus compañeros clientes ni siquiera tienen que ser maliciosos para representar un peligro para usted, solo negligente. –