Análisis de seguridad de la construcción de sitios web con IIS + ASP

  
                              

Con el desarrollo de Internet, las tecnologías web cambian con cada día que pasa. Las personas ya no están satisfechas con la tecnología HTML estática, y muchas más son tecnologías de red dinámicas e interactivas. Siguiendo la Interfaz de Gateway Común (CGI), la solución IIS + ASP de Microsoft se usa ampliamente en banca en línea, comercio electrónico, encuestas en línea, consultas en línea, BBS, motores de búsqueda, etc. como una tecnología de diseño web típica del lado del servidor. Varias aplicaciones de internet. Al mismo tiempo, la base de datos Access, como sistema de base de datos de escritorio lanzado por Microsoft con JET estándar como motor, tiene un gran grupo de usuarios debido a su función simple y su interfaz amigable. Actualmente, IIS + ASP + Access es la solución preferida para sitios de Internet pequeños y medianos. Sin embargo, esta solución nos brinda conveniencia y también serios problemas de seguridad.

I. Análisis de los riesgos de seguridad

Los principales riesgos de seguridad de la solución IIS + ASP + Access provienen de la seguridad de la base de datos de Access, seguida de la conciencia y las medidas de seguridad en el proceso de diseño web de ASP.
1. La base de datos se puede descargar
En el sitio web IIS + ASP + Access, si alguien obtiene o adivina la ruta de almacenamiento y el nombre del archivo de la base de datos a través de varios métodos, la base de datos se puede descargar localmente. Por ejemplo, para la base de datos de la librería en línea, generalmente denominada book.mdb, store.mdb, etc., la ruta de almacenamiento generalmente es "URL /base de datos" o se coloca en el directorio raíz "URL /", de modo que cualquiera escriba la dirección: "URL /Base de datos /store.mdb ", la base de datos se puede descargar.
2. La base de datos se puede descifrar
Dado que el mecanismo de cifrado de la base de datos de Access es relativamente simple, incluso si se establece la contraseña, el descifrado es fácil. El sistema de base de datos forma una cadena cifrada almacenando la contraseña ingresada por el usuario con una clave fija (por ejemplo: Access 97 es 86 FB EC 37 5D 44 9C FA C6 5E 28 E6 13) y la almacena. En el área donde comienza el archivo * .mdb desde la dirección "&H42". Podemos programar fácilmente el programa de descifrado, y una docena de programas de programas pequeños pueden obtener fácilmente la contraseña de cualquier base de datos de Access. Por lo tanto, mientras se descargue la base de datos, no hay seguridad para su información.
3. Riesgos de seguridad del código fuente de la página ASP
(1). Debido a que el programa ASP utiliza un lenguaje no compilado, la seguridad del código fuente del programa se reduce considerablemente. Si el pirata informático ingresa al sitio, se puede obtener el código fuente de ASP. Al mismo tiempo, para el usuario que alquila el servidor, el código fuente de la aplicación ASP se filtra debido a la ética profesional del servidor individual.
(2) Problemas de seguridad que se pasan por alto fácilmente en la programación. El código ASP utiliza formularios para interactuar y el contenido correspondiente se refleja en la barra de direcciones del navegador. Si no toma las medidas de seguridad adecuadas, puede omitir la verificación e ir directamente a una página. Por ejemplo, al escribir "... page.asp? X = 1" en el navegador puede ingresar directamente la página que cumple con la condición "x = 1" sin pasar por la página del formulario. Por lo tanto, se deben tomar medidas especiales para evitar tales problemas en la página de verificación o registro.

En segundo lugar, para mejorar la seguridad del método web IIS + ASP

1. Impedir que la base de datos se descargue
Debido a que el mecanismo de cifrado de la base de datos de Access es demasiado simple e impide que la base de datos se descargue, se ha convertido en la principal prioridad para mejorar la seguridad de la solución ASP + Access. Los siguientes dos métodos son simples y efectivos.
(1) Nomenclatura no convencional. Haga un nombre complejo no convencional para el archivo de base de datos de Access y póngalo en varios directorios. Por ejemplo, para una base de datos de librería en línea, no lo llamamos "book.mdb" o "Store.mdb", sino que comenzamos con un nombre poco convencional, por ejemplo: faq9jl.mdb, y lo colocamos en ./akkt En el directorio de varios niveles de /kj61 /acd /av5, es muy difícil para un pirata informático obtener el nombre del archivo de la base de datos de Access al adivinar.
(2) utiliza la fuente de datos ODBC. En la programación de ASP, si hay condiciones, debe intentar usar el origen de datos ODBC, no escriba el nombre de la base de datos en el programa; de lo contrario, el nombre de la base de datos se perderá con el código de origen de ASP, como por ejemplo:
DBPath = Server.MapPath ("./akkt/kj61/acd/av5/faq9jl.mdb")
conn.open "driver = {Controlador de Microsoft Access (* .mdb)}; dbq =" &DBPath
es visible incluso si el nombre de la base de datos Es extraño nuevamente, y el directorio oculto es profundo. Después de que el código fuente de ASP se ve comprometido, es fácil de descargar. Si utiliza una fuente de datos ODBC, no hay tal problema:
conn.open "ODBC-DSN name"
2. Cifrado de páginas ASP
Para evitar que el código fuente de ASP se filtre, las páginas ASP se pueden cifrar. Hemos utilizado dos métodos para cifrar las páginas ASP. Una es usar tecnología de componentes para encapsular la lógica de programación en la DLL, y la otra es usar el codificador de script de Microsoft para cifrar la página ASP. El principal problema con el uso de la tecnología de componentes es que cada pieza de código debe estar dividida en componentes, * es más engorroso, y la carga de trabajo es grande, y el Codificador se usa para cifrar la página ASP, * es simple y funciona bien. Script Encoder ejecuta SCRENC.EXE y usa:
SCRENC [/s] [/f] [/xl] [/l defLanguage] [/e defExtension] inputfile outputfile
donde: /s is Máscara pantalla de salida; /f especifica si el archivo de salida sobrescribe el archivo de entrada del mismo nombre; /xl se refiere a si agregar la directiva @Language en la parte superior del archivo .asp; /l defLanguag especifica el lenguaje de script predeterminado; /e defExtension especifica la extensión del archivo a cifrar .
3. Verificación de registro
Para evitar que usuarios no registrados ingresen al sistema de aplicación al pasar por alto la interfaz de registro, utilizamos el objeto Session para la verificación del registro. Por ejemplo, creamos la siguiente página de registro.
El diseño requiere que el sistema inicie la página hrmis.asp? Page = 1 después de un registro exitoso. Supongamos que, en lugar de utilizar el objeto Session para la verificación del registro, el usuario puede escribir "URL /hrmis.asp? Page = 1" en el navegador para omitir la interfaz de registro e ingresar al sistema directamente.
Aquí, utilice Sesión verificación de registro de objetos:
después de entrar en la aplicación, primero verificar: estudio
por la seguridad del sistema de solicitud en línea de IIS + ASP + Access, nos El sistema existente ha sido modificado y ha recibido buenos resultados.

Copyright © Conocimiento de Windows All Rights Reserved