Resulta que cambiar mdb a asp puede evitar la descarga, no tiene sentido. Utilice Flashget para probar, descargue el archivo data.asp y guárdelo como un archivo data.mdb. ¡Descubrí que está intacto cuando se abre con ACCESS! 1. Usa tu imaginación para modificar el nombre del archivo de la base de datos.
Sin embargo, si el atacante obtiene la ruta a la base de datos a través de un método de terceros, puede descargar la base de datos. Por lo tanto la confidencialidad es mínima.
2. Cambie el sufijo del nombre de la base de datos a ASA, ASP, etc.
Este método debe combinarse con algunas configuraciones; de lo contrario, se producirá la situación al principio de este artículo.
(1) Campo binario agregado.
(2) Agregue <% o%> a este archivo, IIS lo analizará de acuerdo con la sintaxis ASP y luego informará un error 500; naturalmente, no se puede descargar. Sin embargo, es inútil simplemente agregar <% al campo de texto o nota de la base de datos, porque ACCESS procesará el contenido y existirá en la base de datos como <%, ¡lo cual no es válido! El método correcto es almacenar <% en el campo del objeto OLE, para que se pueda lograr nuestro propósito.
Cómo hacerlo:
Primero, use el bloc de notas para crear un nuevo archivo de texto con el contenido <%, asígnele un nombre aleatorio y guárdelo.
A continuación, abra el archivo de su base de datos con Access, cree una nueva tabla, asígnele un nombre aleatorio, agregue un campo de objeto OLE a la tabla, luego agregue un registro e inserte el archivo de texto creado anteriormente. Si lo hizo correctamente, debería poder hacerlo. para ver Un nuevo registro llamado "Paquete de datos".
3. Agregue # antes del nombre de la base de datos.
Simplemente agregue # al nombre del archivo de base de datos y luego modifique la dirección de la base de datos en el archivo de conexión de la base de datos (como conn.asp). El principio es que al descargar, solo se puede reconocer la parte antes del signo # y las siguientes partes se eliminarán automáticamente, por ejemplo, si desea descargar: http://www.pcdigest.com/date/#123. .mdb (suponiendo que exista). Ya sea IE o FLASHGET, lo que obtiene es http://www.test.com/date/index.htm (index.asp, default.jsp, etc., los documentos de la página de inicio que configuró en IIS)
Además, conservar algunos espacios en el nombre del archivo de la base de datos también desempeña un papel similar. Debido a la particularidad del protocolo HTTP para la resolución de direcciones, los espacios se codificarán como %, como http://www.test.com/date/. 123;456.mdb, descargado de http://www.test.com/date/123%456.mdb. Nuestro directorio no tiene ningún archivo 123%456.mdb, por lo que la descarga no es válida. Después de esta modificación, incluso si expone la dirección de la base de datos, generalmente otros no podrán descargarla.
4. Cifre la base de datos
Primero, seleccione Herramientas->Seguridad->Cifrar/Descifrar base de datos, seleccione la base de datos (por ejemplo: empleado.mdb) y luego haga clic en Aceptar. Luego aparecerá una ventana para guardar la base de datos después del cifrado y guárdela como: empleado1. mdb. Luego, empleado.mdb se codificará y luego se guardará como empleado1.mdb. Cabe señalar que la acción anterior no establece una contraseña para la base de datos, solo codifica el archivo de la base de datos. El propósito es evitar que otros utilicen otras herramientas. Ver el contenido del archivo de base de datos.
A continuación, ciframos la base de datos. Primero, abra el empleado1.mdb codificado. Al abrirlo, seleccione el modo exclusivo. Luego seleccione Herramientas->Seguridad->Establecer contraseña de base de datos en el menú y luego ingrese la contraseña. De esta manera, incluso si alguien más obtiene el archivo empleado1.mdb, no puede ver empleado1.mdb sin la contraseña.
Después del cifrado, debe modificar la página de conexión de la base de datos, como por ejemplo:
conn.open driver={controlador de acceso de microsoft (*.mdb)};uid=admin;pwd=contraseña de la base de datos;dbq=ruta de la base de datos
Después de esta modificación, incluso si se descarga la base de datos, otros no pueden abrirla (siempre que no se haya filtrado la contraseña en la página de conexión de su base de datos)
Pero vale la pena señalar que debido a que el mecanismo de cifrado de la base de datos de Access es relativamente simple, incluso si se establece una contraseña, el descifrado es fácil. El sistema de base de datos forma una cadena cifrada aplicando XOR a la contraseña ingresada por el usuario con una clave fija y la almacena en el área del archivo *.mdb a partir de la dirección &H42. Así que un buen programador puede crear fácilmente un pequeño programa con decenas de líneas para obtener fácilmente la contraseña de cualquier base de datos de Access. Por lo tanto, mientras se descargue la base de datos, se desconoce la seguridad de su información.
5. Coloque la base de datos fuera del directorio WEB o coloque el archivo de conexión de la base de datos en otros directorios virtuales.
Si su directorio WEB es e:/webroot, puede colocar la base de datos en la carpeta e:/data y modificar la dirección de conexión de la base de datos en la página de conexión de la base de datos en e:/webroot a: ../data/formato de nombre de base de datos, para que la base de datos se pueda llamar normalmente, ¡pero no se puede descargar porque no está en el directorio WEB! Este método generalmente no es adecuado para usuarios que compran espacio virtual.
6. Utilice fuentes de datos ODBC.
En programación como ASP, si es posible, debe intentar utilizar fuentes de datos ODBC y no escribir el nombre de la base de datos en el programa. De lo contrario, el nombre de la base de datos se perderá junto con la confidencialidad del código fuente ASP. = Servidor.MapPath(. ./123/abc/asfadf.mdb )
conn.open driver={Controlador de Microsoft Access (*.mdb)};dbq=& DBPath
Se puede ver que no importa cuán extraño sea el nombre de la base de datos, no importa cuán profundo sea el directorio oculto, una vez que el código fuente ASP se ve comprometido, se puede descargar fácilmente. Si usa una fuente de datos ODBC, no habrá tal problema: conn.open nombre ODBC-DSN, pero esto es más molesto. Si mueve el directorio, debe restablecer la fuente de datos. Para obtener un método más conveniente, consulte. Capítulo 7. ¡8 métodos!
7. Agregue una asignación extendida del nombre de la base de datos, como MDB
Este método se logra modificando la configuración de IIS. Es adecuado para amigos que tienen control de IIS, pero no es adecuado para usuarios que compran hosts virtuales (a menos que el administrador lo haya configurado). Creo que este método es el mejor actualmente. Con solo un cambio, se puede evitar que se descargue toda la base de datos del sitio. Las descargas se pueden evitar incluso si la dirección de destino está expuesta sin modificar el código.
Agregamos el análisis de la aplicación del archivo .mdb en Propiedades de IIS---Directorio de inicio---Configuración---Mapeo---Extensión de la aplicación. Tenga en cuenta que la DLL (o EXE, etc.) seleccionada aquí no parece ser arbitraria. Si la selección no es adecuada, el archivo MDB aún se puede descargar. Tenga en cuenta que es mejor no seleccionar asp.dll, etc. Puedes probarlo tu mismo
Luego de esta modificación, descargue la base de datos como: http://www.test.com/data/dvbbs6.mdb. Aparecerá (errores como 404 o 500)
8: Ventajas de usar .net
Mu Niao de Dongwang ha escrito una herramienta anti-hotlinks WBAL para evitar la descarga ilegal de archivos. Para obtener más información, inicie sesión en http://www.9seek.com/WBAL/;
Sin embargo, ese solo previene las descargas no locales y no tiene la función de prevenir realmente las descargas de bases de datos. Sin embargo, este método es casi el mismo que el método 5. ¡Puede modificar el archivo .NET para que no se pueda descargar localmente!
Entre estos métodos, solo los métodos séptimo y octavo se pueden cambiar de manera uniforme. Después de modificar la configuración una vez, se puede evitar que se descargue la base de datos de todo el sitio. Los otros métodos requieren modificar el nombre de la base de datos y el archivo de conexión, respectivamente. Es más problemático, ¡pero los amigos anfitriones virtuales solo pueden hacer esto!
De hecho, el sexto método debería ser una extensión del quinto método, que puede lograr funciones especiales. Sin embargo, para los hosts que no admiten .net o temen configuraciones problemáticas, es mejor usar el quinto método directamente y el. El sexto método se utiliza de forma predeterminada. Aún puede publicar copiando y conectándose al foro o libro de visitas del mismo host y luego haciendo clic para descargar (porque dichas páginas de referencia son del mismo host).
9. Utilice la configuración de permisos de archivos de la partición NTFS (por percyboy)
Ya sabemos que ASP.NET usa ADO.NET para acceder a la base de datos, y se puede acceder a la base de datos Access, una de nuestras bases de datos de gama baja más utilizadas, a través de la conexión OleDb. Este artículo analiza varios mensajes de error que pueden verse en ASP.NET. Se ve que los archivos de bases de datos creados por Access 2000 y Access XP tendrán diferentes mensajes de error cuando ocurren errores de acceso. Espero que ayude a todos. Otro punto importante es que espero que a través de este artículo todos tengan una nueva comprensión de la configuración de permisos NTFS de los archivos de bases de datos de Access en ASP.NET.