¿Es seguro usar sqlite con un archivo de nombre aleatorio?

3

Como usted sabe, SQLite no tiene ningún mecanismo de seguridad. Mi pregunta es si cambio el archivo de la base de datos por un nombre aleatorio como '22OYIz23tmpyesTcMVFmw1tquFxzCIQD.sqlite' ¿alguien puede explotar mi base de datos y cómo?

Suponiendo que tengo mi propio servidor, no un host compartido, solo se accede a la base de datos a través de mi aplicación web (PHP)

    
pregunta Huynh Quang 30.09.2015 - 09:08
fuente

3 respuestas

6

SQLite no es como un DBMS tradicional, ya que no sirve el contenido de la base de datos a una red de computadoras. En realidad es un poco como almacenar todo en un archivo. SQLite permitirá que su aplicación cargue ese archivo y lo consulte.

Como tal, no hay necesidad ni ventaja para un sistema de cuentas de usuario ya que solo los programas en la misma computadora pueden interactuar con él de todos modos. El sistema de permisos de archivos del sistema operativo debe proporcionar protección contra la lectura / escritura no autorizada. Por supuesto, la máquina en la que se encuentra este sistema debe estar protegida, ya que cualquier persona con acceso adecuado en esta máquina puede leer / editar la base de datos.

Si, por ejemplo, desea poder leer solo la tabla A, pero leer y escribir la tabla B, debe usar 2 archivos de base de datos, uno con solo permisos de lectura y el otro con permisos de lectura / escritura. Cómo haces esto depende del sistema operativo.

    
respondido por el Selenog 30.09.2015 - 09:22
fuente
0

El sistema de administración de la base de datos que está utilizando no tiene nada que ver con el hecho de que usted podría verse comprometido y sus datos robados.

Si alguien puede ejecutar comandos arbitrarios a través de su servicio web de PHP, es probable que puedan recuperar las fuentes de su sitio web y con él el nombre / IP / contraseña de su base de datos.

En base a esto, puedes elegir el nombre gracioso que quieras, no importará. Eventualmente, podrán explotar una conexión existente sin siquiera saber qué tipo de base de datos se encuentra detrás.

    
respondido por el M'vy 30.09.2015 - 09:30
fuente
0

La respuesta corta es no. Todo lo que estás haciendo es hacer que el nombre del archivo de la base de datos sea difícil de adivinar, pero no has hecho nada para ocultarlo de los usuarios.

Lo que debe hacer es evitar que el servidor sirva el archivo a usuarios externos.

Hay dos enfoques para proteger su archivo de base de datos:

  • Configure .htaccess para que nunca sirva un archivo con la extensión de su archivo de base de datos (por lo general, .db o .sqlite ). Dado que su aplicación PHP accede directamente al archivo, no será un acceso restringido.

  • Coloque la base de datos fuera de la raíz web. Recuerde que PHP tiene acceso a todo el sistema de archivos y no está limitado a la raíz web. Sin embargo, deberá asegurarse de que el archivo de base de datos tenga los permisos de propietario y grupo adecuados.

respondido por el Manngo 31.05.2018 - 08:05
fuente

Lea otras preguntas en las etiquetas