Salta al contingut principal

Aumentar la seguridad de una base de datos en SQLite

Aumentar la seguridad de una base de datos en SQLite:
Invitado de lujo el que tenemos esta semana en nuestro blog, quien comienza con una serie de posts especiales relacionados con sus más recientes aportaciones a video2brain: José Vicente Carratalá, también conocido en la Comunidad v2b como «jocarsa». ¡Que lo disfruten!
¿Qué es SQLite?

SQLite es un sistema de gestión de bases de datos ligero, potente y rápido. Se basa en una base de datos situada en el sistema de archivos, generalmente con extensión *.db.
Entre sus ventajas, podemos enumerar la flexibilidad, la rapidez en los desarrollos y lo tremendamente fácil que es migrar una app web que use Sqlite: En la mayoría de los casos, copiamos y pegamos la aplicación en la nueva ubicación y funciona a la primera. Además, al ser una base de datos controlada enteramente por PHP, los hosting no suelen poner limitaciones en su uso.
Entre sus desventajas, podemos citar dos: En primer lugar no suelen aceptar usuario y contraseña. Y, lo más importante, al ser un tipo de base de datos basada en un archivo, este archivo se puede descargar directamente desde el navegador, comprometiendo la seguridad de nuestra aplicación.
Por ejemplo, en un sistema linux, la carpeta de publicación web suele estar en /var/www. En un sistema Windows, si usamos XAMPP, estaría en C:/XAMPP/htdocs/ Supongamos que, dentro de www creamos una carpeta llamada app, que contiene una carpeta llamada db, que a su vez contiene a la base de datos basededatos.db. La ruta completa desde el sistema de archivos sería:/var/www/app/db/basededatos.db en linux, y C:/XAMPP/htdocs/app/db/basededatos.db en Windows. En cualquiera de los dos casos, la ruta para acceder desde el exterior al servidor, sería: http://www.[dominio].[ext]/app/basededatos.db, lo que quiere decir que, en la práctica, cualquier persona que conozca el nombre y la ubicación de la base de datos, se la puede bajar simplemente llamándola desde cualquier navegador web. ¿Y que pasaría con cualquier persona que no conociera estos datos? Bueno, se podría programar un bot que se dedicara a ir probando hasta:

1.-Acertar la base de datos.

2.-Sobrecargar el servidor de peticiones.

(La creación de bots será tratada en un artículo futuro)
¿Qué podemos hacer para asegurar nuestras bases de datos en SQLite?

Un truco muy sencillo, si nuestro proveedor nos lo permite, o si estamos usando un servidor propio, es situar la base de datos en una carpeta externa a la carpeta www.

Por ejemplo, en un sistema linux, podemos crear la carpeta /var/db al lado (al mismo nivel) de la carpeta /var/www, o en un sistema Windows podemos crear la carpeta C:/XAMPP/db/ al lado de la capeta C:/XAMPP/htdocs. De esta manera, la carpeta /db ya no es accesible directamente desde el exterior.
¿Y cómo puede acceder nuestro programa a ella?

Supongamos el siguiente ejemplo:

La base de datos está en /var/db/basededatos.db

El script que quiere acceder a la base de datos está en /var/www/app/index.php
Dentro del script PHP, al conectar con la base de datos, solo tendríamos que escribir:

$conexion = sqlite_open(‹../../db/basededatos.db›);

Si estamos en la carpeta /var/www/app/index.php, el primer «../» hace que bajemos hasta /var/www/, el segundo «../» hace que bajemos hasta /var/, «db/» hace que entremos en /var/db/, y por último, seleccionamos la base de datos por su nombre.
Gracias a este sencillo truco, que básicamente consiste en sacar la base de datos SQLite de la carpeta pública, podemos seguir disfrutando de las ventajas de SQLite, a la vez que aumentamos su seguridad.
José Vicente Carratalá

Comentaris

Entrades populars d'aquest blog

15 Tutoriales CSS3 para mejorar tus paginas web

15 Tutoriales CSS3 para mejorar tus paginas web : Les dejo una pequeña recopilación de tutoriales CSS3 que espero sean de utilidad para ustedes, intentamos hacer una recopilación bastante completa para crear impresionantes diseños web con CSS3 y aprovechar las bondades de CSS3 incluso para aplicar efectos, son un total de 15 tutoriales CSS3 gratis . Crear menu dropdown con CSS3 Crear breadcrumbs con estilo Transiciones de paginas con CSS3 Crear timeline con CSS3 y jQuery Reproductor de video con HTML5, CSS3 y jQuery Crear efecto acordion CSS3 Aplicar degradado a texto Crear texto en curva con CSS3 y jQuery Aplicar textura a texto con Magic Pill Crear slider de imagenes con CSS3 y jQuery Rotar texto con CSS3 Crear menu vertical con CSS3 Crear formulario con HTML5 y CSS3 Crear efecto de imagenes apiladas con CSS3 Aplicar estilos para imagenes con CSS3  

Averiguar la Salud del Disco Duro, con Crystal Disk Info [Windows]

Averiguar la Salud del Disco Duro, con Crystal Disk Info [Windows] : El actual “cuello de botella” en nuestras PCs; es decir, donde todo el rendimiento de nuestra PC llega a estancarse , es en el Disco Duro. Si bien los procesadores han evolucionado considerablemente en velocidad / rendimiento, el RAM no sólo es más económico, sino más veloz, y las tarjetas de video siguen innovando con cada generación, los discos duros han permanecido idénticos desde hace años, limitados por la física. Y es que un disco duro tradicional sólo tiene un máximo de velocidad con el que puede girar (medido en revoluciones por minuto, o RPM) que, a su vez, limita la velocidad de lectura y escritura. En pocas palabras, a pesar de que nuestras PCs pueden procesar información mucho más rápido que hace 5 años, los discos duros siguen leyendo (y escribiendo) esta información prácticamente a la misma velocidad. Esto ha cambiado con la llegada de los SSD, los Discos de Estado Sólo que no están limitados por la velo...

El meu editor de codi preferit el 2024, que això ja se sap que va canviant 😄

Visual Code Visual Code és un editor de codi font lleuger, però potent que s’executa al teu escriptori i està disponible per a Windows, macOS i Linux. Compta amb suport integrat per a JavaScript, TypeScript i Node.js i té un ric ecosistema d’extensions per a altres llenguatges i entorns d’execució (com C++, C#, Java, Python, PHP, Go, .NET).  És una eina ideal per a desenvolupar i depurar aplicacions web i en el núvol. Per què Visual Code? Visual Code té molts avantatges com a editor de codi font, com per exemple: És gratuït, ràpid i fàcil d’instal·lar i actualitzar. Té un ampli ecosistema d’extensions que et permeten afegir funcionalitats i personalitzar la teva experiència de desenvolupament. Té un suport integrat per a molts llenguatges i entorns d’execució, i et permet depurar i executar el teu codi des del mateix editor. Té una interfície senzilla i elegant, amb diferents temes i modes de visualització. Té un sistema de sincronització de configuracions que et permet guardar les...