Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Seguridad de base de datos en la web

Estas en el tema de Seguridad de base de datos en la web en el foro de SQL Server en Foros del Web. Hola a todos! antes que nada pido disculpas por si posteo en el lugar equivocado, es que no se si mi tema deberia ir en ...
  #1 (permalink)  
Antiguo 01/06/2009, 22:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 66
Antigüedad: 15 años
Puntos: 0
Seguridad de base de datos en la web

Hola a todos! antes que nada pido disculpas por si posteo en el lugar equivocado, es que no se si mi tema deberia ir en esta seccion pero por el tinte de este asunto creo que estoy bien.

Advierto que el post es medio larguito por que voy a plantear mi problema y explicar el mecanismo pensado para resolverlo, y luego pedir sugerencias!

Lo que me esta pasando es que tengo un servidor de juego online ( no viene al caso decir que juego) y estoy sufriendo ataques de "hackers".

Vale aclarar que el juego esta compuesto de 3 partes, una web, una aplicacion y una base de datos (implementada con sql server 2000). Obviamente tanto la web como la aplicación actuan sobre la base de datos.

El tema es que si bien aun tengo mucho por aprender sobre servidores ( por que soy bastante novato) estoy en principio enfocandome a la seguridad de la web que interactua con la base de datos del juego.

A pesar de ya haber tomado las medidas pertinentes para evitar sql injections, he tenido casos que me han burlado por la web borrandome por ejemplo todos los registros de una tabla de la DB.

Lo que ideamos con mi grupo es implementar una base de datos que actue unicamente con la web, y que luego mediante un soft que trabaja del lado del servidor sincronice la base de datos que trabaja con la web y la base de datos real. De esta forma, la aplicacion (el soft del juego) actuará directamente sobre la base de datos real, y la web trabajará con esta base de datos "falsa".

El soft lo que haria es al momento de sincronizar los cambios hechos mediante la web, validar dichos cambios, es decir verificar ciertos patrones en las diferencias entre ambas de manera que los cambios hechos mediante la web resulten validos ( dentro de lo que se espera de la web) ; luego de validar y aplicar estos cambios a la base de datos real, copiará el estado de la base de datos real a la base de datos "falsa".

De esto resulta claro que habrá una importante carga de trabajo en el servidor.

De esta forma, si algun "hacker" o mejor dicho alguna persona mal intencionada, se le ocurre por ejemplo borrar todos los registros de una tabla, causando un daño a la base de datos falsa (recordando que el "hacker" estará tratando de causar daño mediante la web y no sabe que la base de datos no es la real), esto no seria grave por que el soft antes mensionado volveria a copiar el estado de la base de datos real a la falsa y cualquier daño que el "hacker" pudiera haber ocacionado quedaria totalmente descartado.

En fin, lo que me interesa es saber que sugerencias relacionada con la seguridad para este tipo de aplicaciones podrian brindarme y saber si consideran esto una buena practica de seguridad, o bien que se recomienda en estos casos?

Recuerdo que soy novato en el tema de servidores.

Si alguien quiere ademas aportar bibliografia especifica sobre el tema estaria genial!

igual ya se que la mayoria se aprende en la red!
  #2 (permalink)  
Antiguo 02/06/2009, 10:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Seguridad de base de datos en la web

¿Tienes codigo T-SQL en tu front (cliente)?, eliminalo y conviertelo a procedimientos almacenados, como tu dices, evitando el uso de query dinamico
  #3 (permalink)  
Antiguo 02/06/2009, 13:22
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Seguridad de base de datos en la web

como dices iislas trata de usar procedimientos almacenados ya que se ejecutan en el servidor y no en el cliente ademas evitarias la Injeccion SQL que es lo que de repente estan utilizando para entrar y alterar tu web.

Ademas los Procedimientos Almacenados se ejecutan mas rapidos que realizar un transact en el cliente por el motivo que la sentencia ya esta definida en el procedimiento mientras que en cliente lo que sucede es que la transaccion recien se esta definiendo teniendo que pasar por una serie de puentes que realiza la aplicacion para conectarte a tu Base de Datos mientras que el procedimiento no es asi.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.