2010-06-22 13 views
10

He oído mucho sobre los niveles de confianza, la gente ha intentado explicarme pero todavía no puedo dar un escenario en el que aplique un nivel de confianza sobre otro.¿Puede alguien explicarme los niveles de confianza de ASP.NET?

He leído a través de MSDN's article pero no hizo mucho por mí.

¿Alguien puede dar un ejemplo del mundo real de cuándo le gustaría usar los distintos niveles (completo, alto, medio, bajo y mínimo) y explicar a qué tipo de riesgo de seguridad me expondría si tuviera que usar el incorrecto?

Respuesta

2

This article podría explicarlo mucho mejor que el técnico que estaba leyendo.

Aquí está la mejor parte de ella:

confianza medio Resumen

Las principales limitaciones impuestas a aplicaciones Web de confianza medio son:

  • OleDbPermission no está disponible. Esto significa que no puede usar el proveedor OO DB administrado por ADO.NET para acceder a las bases de datos. Sin embargo, puede usar el proveedor administrado SQL Server para acceder a las bases de datos SQL Server .

  • EventLogPermission no está disponible. Esto significa que no puede acceder al registro de eventos de Windows .

  • ReflectionPermission no disponible. Esto significa que no puede usar la reflexión .

  • RegistryPermission no está disponible. Esto significa que no puede acceder al registro .

  • WebPermission is restricted. Esto significa que su aplicación solo puede comunicarse con con una dirección o rango de las direcciones que defina en el elemento .

  • FileIOPermission is restricted. Esto significa que solo puede acceder a los archivos en la jerarquía de directorios virtuales de la aplicación . Su aplicación tiene permisos Read, Write, Append y PathDiscovery para la jerarquía del directorio virtual de la aplicación .

  • También se le impide llamar al código no administrado o al utilizar Enterprise Services.

Un fácil situación del mundo real a imaginar donde tiene esto es que si usted es una ofrenda ISP de alojamiento para las personas. Permitir que cualquier persona escriba código que pueda acceder al sistema de archivos significa que cualquier persona puede hacer lo que quiera en su servidor, que puede albergar varios clientes.

1

Si bien no soy un experto, me gustaría dar uno de los ejemplos más comunes de confianza si compró alojamiento a través de un proveedor compartido a través de un proveedor por $ 10 al mes, donde no tiene acceso directo a la máquina, pero obtener un espacio de almacenamiento asignado. En este escenario, normalmente obtiene una confianza media porque el proveedor de servicios de hosting desea limitar lo que puede hacer (asegurarse de que no puede eliminar o modificar algo que no debería) y no tiene acceso a ciertos recursos (como intentar lea un archivo fuera de la carpeta para la que tiene permiso) y otras tareas.

Tenemos acceso completo a nuestra máquina donde alojamos un sitio, y le damos plena confianza, no es una preocupación para nosotros ya que está dedicado a nuestro sitio web y no es un recurso compartido.

0

El problema con los niveles de confianza es que tantos complementos requieren permisos elevados que ciertos tipos de aplicaciones simplemente no funcionarán.

He visto personalmente que Crystal Reports y una herramienta de conversión de HTML a PDF fallan en virtud de la confianza media: se requiere FileIOPermission para la carpeta Temp fuera del directorio virtual de la aplicación. También he visto problemas con las conexiones TCP Socket bloqueadas debido a ciertos niveles de confianza.

En realidad, tuve una situación de catch 22 bastante molesta con una aplicación web el año pasado donde se requería Medium Trust para la seguridad, ¡pero también lo estaba escribiendo en el Registro de eventos!

Afortunadamente puede sobrescribir los niveles de confianza en su machine.config en el servidor (si tiene acceso), o su web.config si su servidor está configurado para permitir que sobrescriba el archivo machine.config.

Haciendo ese tipo de derrotas el propósito de los niveles fijos de confianza aunque ...

Cuestiones relacionadas