¿Cómo restringir el acceso de las aplicaciones web a las tablas?
Hay dos lugares para configurar los permisos del servidor web IIS. Uno son los permisos del propio sistema de archivos NTFS y el otro es el sitio web en Propiedades del sitio IIS->; gt; directorio de inicio (o sitio en el panel Catálogo - > Propiedades - > Catálogo). Los dos lugares están estrechamente relacionados. A continuación se muestra un ejemplo para explicar cómo configurar permisos.
El sitio web en el panel IIS->Sitio->Propiedades->Directorio principal (o el directorio en el panel Sitio->Propiedades->Directorio) es:
Escribir script de acceso a recursos
Obtener
Escribir
Examinar
Acceso a registros
Indexar recursos
Seis opciones . Entre las seis opciones, "acceso a registros" e "indexar recursos" tienen poco que ver con la seguridad y generalmente están configuradas. Pero si no se configuran los primeros cuatro permisos, no es necesario configurar estos dos permisos. Al configurar permisos, simplemente recuerde esta regla. El siguiente ejemplo no explica en detalle la configuración de estos dos permisos.
Además, en la lista desplegable de permisos de ejecución bajo estas seis opciones, hay:
Ninguno
Script puro
Puros Scripts y programas ejecutables
Tres opciones.
Si el directorio del sitio web está en una partición NTFS (recomendado), debe configurar los permisos correspondientes para el directorio en la partición NTFS. En muchos lugares se ha introducido la configuración de permisos para todos. En realidad esto no es bueno. De hecho, solo necesita configurar los permisos de la cuenta de invitado de Internet (IUSR_xxxxxxx) o la cuenta de grupo IIS_WPG. Si configura los permisos de directorio para programas ASP y PHP, configurará los permisos para la cuenta de invitado de Internet. Para los programas ASP.NET, deberá configurar los permisos de cuenta para el grupo IIS_WPG. Cuando se mencione la configuración de permisos NTFS más adelante, se señalará claramente. Lo que no se indica explícitamente se refiere a la configuración de permisos en el panel de propiedades de IIS.
Ejemplo 1: configuración de permisos para el directorio donde se encuentran los programas ASP, PHP y ASP.NET:
Si desea ejecutar estos programas, debe configurar el parámetro "read "permiso y establezca el permiso de ejecución para "script puro". No establezca "escritura" ni "acceso a recursos de secuencias de comandos", ni establezca permisos de ejecución para "secuencias de comandos puras y programas ejecutables". No establezca permisos de escritura y modificación para el grupo de usuarios IIS_WPG y la cuenta de Invitado de Internet en los permisos NTFS. Si hay algunos archivos de configuración especiales (y los archivos de configuración en sí son programas ASP y PHP), debe configurar los permisos de escritura de la cuenta de invitado de Internet (el programa ASP.NET es el grupo IIS_WPG) para estos archivos específicos en NTFS. permisos, no en IIS Configure el permiso de "escritura" en el panel de propiedades.
El permiso de "escritura" en el panel IIS es en realidad el procesamiento del comando HTTP PUT. Para los sitios web normales, este permiso generalmente no está activado.
El "Acceso a recursos de script" en el panel IIS no se refiere al permiso para ejecutar el script, sino al permiso para acceder al código fuente. Será muy peligroso si el permiso de "escritura" está activado al mismo tiempo.
El permiso "Scripts puros y programas ejecutables" en los permisos de ejecución puede ejecutar cualquier programa, incluidos los programas ejecutables exe. Si el directorio también tiene permisos de "escritura", será fácil para alguien cargar y ejecutar el troyano.
Para el directorio del programa ASP.NET, a muchas personas les gusta configurarlo en Web *** en el sistema de archivos, pero en realidad no es necesario. Solo asegúrese de que el directorio sea una aplicación en IIS. Si el directorio no es un directorio de aplicación en IIS, simplemente configúrelo en Propiedades-> simplemente haga clic en Crear en la sección Configuración de la aplicación del panel Directorio. La web *** le dará más derechos y puede crear inseguridad.
Resumen: En otras palabras, generalmente no abra el directorio de inicio (escritura) y no seleccione (acceso a recursos de script) (scripts puros y programas ejecutables), solo (scripts puros). Si ASP.NET tiene varios directorios de aplicaciones, puede crearlos en Carpeta de aplicaciones (Propiedades) -Directorios-punto. No seleccione archivos web*** en la carpeta.
Ejemplo 2-Configuración de permisos para directorios de carga:
Se pueden configurar uno o varios directorios en el sitio web del usuario para permitir la carga de archivos. El método de carga es generalmente a través de ASP, PHP, ASP. .NET Espere a que se complete el programa. Lo que debe tenerse en cuenta en este momento es que el permiso de ejecución del directorio de carga debe establecerse en "Ninguno", de modo que incluso si se cargan programas de script como ASP y PHP o programas exe, la ejecución no se activará en el directorio del usuario. navegador.
De manera similar, si los usuarios no están obligados a utilizar el comando PUT para cargar, no abra el permiso de "escritura" del directorio de carga. En su lugar, debe configurar los permisos de escritura de la cuenta de invitado de Internet en los permisos NTFS (el directorio de carga del programa ASP.NET es el grupo IIS_WPG).
Si el programa lee el contenido del archivo y luego lo reenvía al usuario cuando lo descarga, ni siquiera se debe establecer el permiso de "lectura". Esto garantiza que los archivos cargados por los usuarios solo puedan ser descargados por usuarios autorizados en el programa. En lugar de que lo descargue un usuario que conozca el directorio donde está almacenado el archivo. No active "Examinar" a menos que solo desee que los usuarios exploren su directorio de carga y seleccionen lo que quieren descargar.
Resumen: En términos generales, algunos programas, como asp.php, tienen un directorio de carga, como los foros. Heredan las propiedades anteriores y pueden ejecutar scripts. Deberíamos restablecer las propiedades de estos directorios y cambiar (Pure Script) a (Ninguno).
Configuración de permisos para el directorio donde se encuentra la base de datos de Access de muestra:
Muchos usuarios de IIS a menudo cambian el nombre de la base de datos de Access (con asp o aspx como sufijo, etc.) o la colocan fuera el directorio de publicación, para evitar que los visitantes descarguen su base de datos de Access. En realidad esto no es necesario. De hecho, sólo necesita eliminar los permisos de "lectura" y "escritura" del directorio (o archivo) donde se encuentra Access para evitar que se descargue o se manipule. No tiene que preocuparse de que su programa no pueda leer ni escribir su base de datos de Access. Lo que su programa necesita son permisos para la cuenta de invitado de Internet o la cuenta del grupo IIS_WPG en NTFS. Al configurar los permisos de lectura y escritura de estos usuarios, puede estar completamente seguro de que su programa se ejecutará correctamente.
Resumen: Los permisos de la cuenta de invitado de Internet o de la cuenta de grupo IIS_WPG se pueden leer y escribir. Luego puede eliminar los permisos de "lectura" y "escritura" del directorio (o archivo) donde se encuentra Access para evitar que se descargue o se altere.
Ejemplo 4: configuración de permisos para otros directorios:
Su sitio web puede tener un directorio de imágenes puro, un directorio de plantillas HTML puro, un directorio de archivos JS de cliente puro o un directorio de hojas de estilo. Sólo necesita establecer permisos de "Lectura" en estos directorios y establecer "Permisos de ejecución" en "Ninguno". No es necesario establecer otros permisos. El ejemplo anterior cubre la configuración de permisos en la mayoría de los casos. Siempre que domine los principios básicos de configuración, podrá completar fácilmente la configuración de permisos en otras situaciones.