2009-07-08 16 views
5

Estoy experimentando fallas de enlace de ensamblaje debido a permisos insuficientes en la carpeta Archivos temporales ASP.NET.¿Los permisos de escritura del usuario a la carpeta Archivos temporales ASP.NET plantean problemas de seguridad?

La aplicación utiliza (web.config) autenticación de formularios con Impersonate = True e IIS autenticación integrada de Windows.

De acuerdo con ASP.NET Identity Matrix, esto significa que WindowsIdentity se resuelve en Dominio \ NombreUsuario y de acuerdo con ASP.NET Required Access Control Lists (ACLs), WindowsIdentity requiere permisos de lectura/escritura en la carpeta Archivos temporales ASP.NET.

Utilizando el visor de registro Fusion, puedo confirmar que la falla de enlace del ensamblaje se debe a Domain \ UserName (perteneciente al grupo "Usuarios" en seguridad) solo con permisos de lectura para esta carpeta, pero no permisos de escritura.

Las preguntas son:

¿Existen implicaciones de seguridad de la asignación de permisos de escritura a la carpeta de archivos temporales de ASP.Net?

¿Se suele utilizar este cambio de configuración del servidor? De lo contrario, ¿por qué WindowsIdentity resolvería el Dominio \ Nombre de Usuario para esta combinación de configuraciones web.config? ¿O no debería usarse esta combinación en este contexto?

Nota: El problema solo ocurre si un usuario que no es administrador es el primero en llegar a la página. Si el ensamblado ya se ha compilado y almacenado en archivos temporales ASP.NET debido a que un usuario administrador golpea la página, no hay problemas para los usuarios posteriores. NO deseo colocar las asambleas en el GAC.

+0

¿Es esto IIS6 o IIS7? – Kev

Respuesta

1

ASP.NET requiere permiso de escritura para la carpeta temporal de archivos ASP.NET, no debería ser un riesgo para la seguridad al proporcionarle solo permiso de concesión a esa carpeta y no superior ya que se encuentra dentro de la carpeta c: \ windows.

Este MSDN article about securing ASP.NET applications recomienda otorgar un control total al directorio de compilación temporal de la identidad del proceso de ASP.NET. He citado la sección correspondiente:

Por defecto, los archivos temporales se crean y se recogen en el siguiente directorio:

% winnt% \ Microsoft.NET \ Framework versión {} \ Temporary ASP.NET Files

Puede especificar la ubicación por aplicación utilizando el atributo tempDirectory, aunque esto no proporciona ningún beneficio de seguridad.

Nota La identidad de proceso de ASP.NET especificada en el elemento requiere derechos de acceso de Control total en el directorio de compilación temporal.

+0

(Debe agregar "msdn" al frente del enlace.) Sí, pero en este caso, la configuración de web.config significa que DOMAIN \ User (suplantación configurada) requiere acceso de escritura y la pregunta era específicamente sobre qué implicaciones de seguridad podría tener esto. El proceso ASP.NET no figura como parte de este enlace de ensamblado. –

Cuestiones relacionadas