net mvc deploy asp asp.net asp.net-mvc security iis

asp.net - mvc - ¿Cuáles son los efectos de seguridad de otorgar a IIS_IUSRS un permiso de Control total?



publish asp.net web api to iis (2)

¿Cuáles son los efectos de seguridad de otorgar a IIS_IUSRS un permiso de Control total en la carpeta raíz de los sitios web ASP.NET?

¿Por qué no puedo otorgar el permiso de control total solo a IUSR, que forma parte del grupo IIS_IUSER?

Cualquier respuesta aclara este conflicto, se agradece mucho.


Es fácil confundir IUSR e IIS_IUSRS debido a sus nombres, pero estas son dos cosas diferentes:

  1. IIS_IUSRS es el grupo para cuentas de proceso de trabajo de IIS. Esto significa la identidad con la que se ejecuta el grupo de aplicaciones.
  2. IUSR es la identidad del usuario anónimo. Eso significa la identidad que IIS cree que es el usuario que accede al sitio. Este usuario no es miembro del grupo IIS_IUSRS de forma predeterminada.

En IIS 7.0, una cuenta integrada (IUSR) reemplaza la cuenta IUSR_MachineName. Además, un grupo que se llama IIS_IUSRS reemplaza el grupo IIS_WPG. [...] La cuenta IUSR se parece a una red o cuenta de servicio local. La cuenta IUSR_MachineName se crea y utiliza solo cuando está instalado el servidor FTP 6 que se incluye en el DVD de Windows Server 2008. Si el servidor FTP 6 no está instalado, la cuenta no se crea. http://support.microsoft.com/kb/981949

IIS_IUSRS es un grupo integrado que tiene acceso a todos los recursos de archivos y sistemas necesarios para que una cuenta, cuando se agrega a este grupo, pueda actuar sin problemas como una identidad de grupo de aplicaciones.

Lea un hilo similar que explica por qué dar un acceso a IIS_IUSRS tiene un efecto diferente al de darle el mismo acceso a IUSR:

Here hay una buena documentación sobre los grupos y usuarios utilizados en IIS 7.

De forma predeterminada, IIS_IUSRS solo tiene permisos de lectura y ejecución (y como contenido de la carpeta de la lista de resultados) en wwwroot. El control total puede ser demasiado.


Imagine un sitio web que permita a los usuarios cargar archivos arbitrarios, que tiene un error que hace que dichos archivos se guarden en el directorio de la aplicación.

En este caso, un atacante puede cargar un archivo aspx con código arbitrario, sobrescribir su archivo web.config, etc.

Es mucho mejor otorgar acceso de solo lectura a la carpeta raíz, y solo otorgar control total a carpetas específicas que usted sabe que no contendrán código ejecutable, por ejemplo, subcarpetas de Datos_aplicados.