Pregunta

Cuando creo una aplicación ASP.NET Azure, por nivel predeterminado .NET confianza es la confianza completa. Siempre lo cambio a Windows Azure confianza parcial que es similar al nivel de confianza medio de ASP.NET.

Puede hacerlo ya sea mediante el uso de interfaz gráfica de usuario cuando se selecciona Propiedades sobre el papel o estableciendo enableNativeCodeExecution en false en el archivo de definición (.csdef) como a continuación:

<WebRole name="ServiceRuntimeWebsite" enableNativeCodeExecution="false">

Como desarrollador conscientes de seguridad que quiero de forma predeterminada para ejecutar mi aplicación en modo de confianza parcial que proporciona un mayor nivel de seguridad. Si tengo que usar algo como reflexión o P / Invoke, como desarrollador quiero tomar la decisión de bajar ese nivel de confianza por mí mismo.

Estoy seguro de que hay una razón por qué Microsoft decidió utilizar la confianza completa como un nivel de confianza predeterminado .NET, sólo alcanzo a verlo. Si conoce la razón, o que cree que lo sabe, por favor hágamelo saber.

¿Fue útil?

Solución

Plena confianza no sólo es necesaria para P / Invoke para .NET reflexión también. Como resultado línea de fondo, casi todas las aplicaciones de tamaño moderado necesitan plena confianza, porque casi todas las bibliotecas generalizadas también lo necesitan (NHibernate por ejemplo). En realidad, he estado pidiendo desde el exacta pregunta opuesta en los foros Azure también.

Otros consejos

El tema de la confianza total o parcial se refiere al entorno en el que se ejecuta la aplicación. La mayor control y / o "propiedad" del medio ambiente y asambleas que tiene, el más aceptable que es tener la configuración de plena confianza.

Por ejemplo, si crea un sitio web Azure (2012 Julio capacidad) y, wordpress imitando o Umbraco, su sitio web permite a los plugins de montaje arbitrarios para ser descargados e instalados, entonces es importante tener un entorno de confianza parcial. Es posible que uno de los plugins descargados y ejecutados, los cuales no controla ni propias, contiene software malicioso. Esto no sólo influyen sobre la seguridad y la estabilidad de su sitio web, pero algunos pueden argumentar que impacta otra (multi-tenant) alojado en la web los sitios que no tienen relación con el suyo.

Desde luego su sitio web se basa en las bibliotecas 3 ª parte, como Log4net o StructureMap, pero esos son extremadamente bien conocido y bibliotecas que no están en cuestión con respecto a su impacto en la seguridad vetado. Ergo, si está ejecutando una red en roles Azure (mucho menos "multi-tenant" tipo de relación) y no son más que ejecutando tales "de confianza" 3 ª Parte aplicaciones, entonces realmente no es un problema con el funcionamiento como de plena confianza.

Sí, por desgracia, todavía es muy difícil (si no imposible) para escribir grandes aplicaciones .NET que se ejecutan en confianza parcial.

Necesitamos mucho mejor tecnología y herramientas (como CAS.NET)

Debido confianza medio es ahora oficialmente obsoleto. Si se inicia un nuevo proyecto web en Visual Studio, que ya requiere de plena confianza (y no funciona confianza parcial). Microsoft dice: no dependen de confianza medio, en cambio, utilizar Plena confianza, y aislar las aplicaciones que no se confía en grupos de aplicaciones independientes

.

Fuentes:

Stackoverflow respuesta: Citado respuesta de equipo de ASP.NET

Microsoft: ASP.NET confianza parcial no garantiza el aislamiento de aplicaciones

Microsoft: las mejores prácticas de desarrollo web ASP.NET

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top