Foros del Web » Programando para Internet » PHP »

Sesiones y seguridad en php con mysql

Estas en el tema de Sesiones y seguridad en php con mysql en el foro de PHP en Foros del Web. Bueno, estoy empezando en lo que es programación de webs con php + mysql y tengo una duda referente a la seguridad del sitio web. ...
  #1 (permalink)  
Antiguo 21/06/2010, 07:52
 
Fecha de Ingreso: junio-2010
Mensajes: 8
Antigüedad: 14 años, 5 meses
Puntos: 0
Sesiones y seguridad en php con mysql

Bueno, estoy empezando en lo que es programación de webs con php + mysql y tengo una duda referente a la seguridad del sitio web.
Veamos, hay una página login.php para abrir una sesión en php que pide nombre, usuario y password mediante un formulario que envía a validar.php en el que se comprueba que el usuario y la clave se corresponden a los datos almacenados en una tabla de la bbdd que se llama validación. Si es correcto, crea la sesión y pasa a unas páginas donde se pueden entrar datos en las diferentes tablas de la bbdd, si no es correcto, te vuelve a enviar a la página de login.php.

Todas las páginas de la sesión tienen este script para comprobar la validación. Si el condicional es diferente de "si", te envia a validarte.
<?
session_start();
if ($_SESSION["validación"] != "si") {
header("Location: login.php");
exit();
}
?>
Se supone que todas las páginas dentro de la sesión están protegidas con este script de sesión.
Hasta aquí estoy comentando cómo funciona el sistema de sesiones.

La duda que tengo es que cuando está en validación, para comprobar los datos entrados los compara con los de la base de datos, utilizando un archivo de conexión que se llama conectar.php que viene a ser lo siguiente:
<? Php
$ Host = "localhost";
$ Usuario = "root";
$ Password = "Quienesperadesespera";
$ Basedatos = "pruebas";
$ Conexion = mysql_connect ($ Host, $ Usuario, $ Password);
?>
Se ve claramente la clave, el usuario y host para entrar en la base de datos y claro, no me inspira ninguna confianza que estos datos puedan ser visibles.
Si este archivo lo incluyo dentro de la sesión, entonces no podría acceder para hacer la comprobación porque no pasaría la validación.
He intentado explicarme lo mejor que he podido. Simplemente veo un fallo de seguridad.
Entonces la pregunta es ¿cómo hay que hacerlo?
  #2 (permalink)  
Antiguo 21/06/2010, 08:02
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola ofde. Bienvenido al foro.

Muevo tu tema al foro de PHP desde Web general.

Saludos,
  #3 (permalink)  
Antiguo 21/06/2010, 08:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Sesiones y seguridad en php con mysql

No veo ningún fallo de seguridad a excepción que tengas indicado en producción el error_reporting y que veo que tienes separado los símbolo de $ del nombre de la variable que eso es un error. Que en producción para evitar enviar información al navegador del usuario lo mejor es desabilitar el registro de errores y verificar mejor los logs a ver si encuentra algún error. Pero de indicar los datos en el mismo archivo no veo ningún problema ya que el código de PHP corre en el servidor no en el navegador del cliente y por lo tanto las variables no las verá a menos que las imprimas para que se vea en pantalla.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 21/06/2010, 08:24
 
Fecha de Ingreso: junio-2010
Mensajes: 8
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Sesiones y seguridad en php con mysql

Tomo nota de lo de error_reporting. El simbolo de variable $ con el copia y pega, no sé por que, se ha quedado separado.
Gracias.

Etiquetas: mysql, seguridad, sesiones
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 22:06.