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?