Database security; Diseño & conexión (I)

SDB, 1, BloG - 001

SDB, 1, BloG - 002

SDB, 1, BloG - 003

SDB, 1, BloG - 004

Hoy en día, las <bases de datos> son componentes esenciales de cualquier aplicación web, permitiendo a los sitios web proveer variedad de contenido dinámico. Puesto que se puede almacenar información muy “sensible o secreta” en una <base de datos>, debería considerarse -ampliamente- la protección de las <bases de datos>.

Para -obtener o almacenar- cualquier información, es necesario conectarse a la <base de datos>, enviar una consulta válida, obtener el resultado, y cerrar la conexión. Hoy en día, el lenguaje de consultas más utilizado en esta interacción es el “Lenguaje Estructurado de Consultas” (SQL, por sus siglas en inglés). Más adelante veremos como el <malo de la peli> puede <realizar manipulaciones maliciosas con una consulta SQL> }:S

SDB, 1, BloG - 005

Como es de suponer, <PHP> no puede proteger una <base de datos> por sí mismo. Las siguientes secciones tienen como objetivo ser una -introducción básica- de cómo “acceder y manipular” <bases de datos> dentro de –scripts de “PHP”-.

Tener en cuenta esta -sencilla regla-; “Protección en profundidad”. En cuantos más sitios se tomen acciones para aumentar la “protección” de una <base de datos>, menor es la probabilidad de que “el malo de la peli” tenga éxito en “exponer o abusar” de cualquier información que tenga almacenada. Un buen diseño del esquema de la <base de datos> y de la aplicación se ocupará de sus mayores temores.

“Database” <design> -;

SDB, 1, BloG - 006

El “primer paso” es siempre -crear- una <base de datos>, a menos que se quiera utilizar una de un tercero. Cuando se crea una <base de datos>, esta es asignada a un propietario, aquel que ejecutó la sentencia de -creación-. Usualmente, sólo el propietario (o un “superusuario”) puede hacer cualquier cosa con los objetos de esa <base de datos>. Para que otros usuarios puedan utilizarla, se les deben conceder <privilegios>.

Las -aplicaciones- nunca deberían conectarse a la <base de datos> como su “propietario o como un superusuario”, porque estos “usuarios” pueden ejecutar cualquier consulta a su antojo -; por ejemplo, “modificar el esquema” (p.ej., <eliminar tablas>) o <borrar su contenido por completo>.

SDB, 1, BloG - 007

Se pueden crear distintos “usuarios” de una <base de datos> para cada aspecto de la -aplicación- con permisos muy limitados a los objetos de dicha <base de datos>. Solamente deberían otorgarse los privilegios necesarios, evitando así que el mismo “usuario” pueda -interactuar- con la <base de datos> en diferentes “casos y uso”. Esto significa que si un -“malote”- obtiene acceso a una <base de datos> utilizando las “credenciales” de la <aplicación>, solamente puede efectuar los cambios que la <aplicación> permita.

Se recomienda no implementar toda la “lógica de negocio” en la <aplicación web> (esto es, en los <scripts>); se ha de hacer en su lugar en el esquema de la <base de datos> utilizando -vistas, disparadores o reglas-. Si el sistema evoluciona, se tendrá por objeto abrir nuevos puertos a la <base de datos>, teniendo así que -reimplementar- la “lógica” en cada cliente de la <base de datos> por separado. Además, los disparadores se pueden utilizar para manejar campos de forma -transparente y automática-, lo que a menudo ayuda en la depuración de problemas con la “aplicación” o en el <seguimiento de transacciones>.

Conexión a una <base de datos> -;

SDB, 1, BloG - 008

Se pueden establecer las -conexiones- sobre <SSL> para “encriptar las comunicaciones” <cliente/servidor> y “aumentar la seguridad”, o también -emplear <ssh>- para “encriptar la conexión de red” entre los -clientes y el servidor- de <bases de datos>. Si se utiliza algunas de estas “opciones”, será difícil para el “posible” -malote- la “monitorización del tráfico” y la “obtención de información” de la <base de datos> 😉

Continuaremos en el <próximo artículo> }:P

Salu2


TonyHAT - 473

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s