Hola, estoy realizando una aplicación web en php para la gestión de un centro escolar que en un principio iba a ser para una intranet, pero que se ha decidido sacar a internet.
Como iba a ser para una intranet la verdad es que creo que la seguridad de la aplicación es un poco baja, pido por favor me aconsejeis si está bien este nivel de seguridad o es poco y posibles alternativas. Os cuento, en todos los scripts, al principio hay una llamada a un script llamado 'seguridad.php' que contiene:
Código PHP:
<?
session_start();
if (($_SESSION['autentificado'] != "SI") || ($_SESSION['loginActivo'] != $_SESSION['loginURL'])) {
//si no existe, envio a la página de autentificacion
echo'<script language=Javascript> location.href="http://Autentificacion/autentificacion.php"; </script>';
//ademas salgo de este script
exit();
}
?>
En 'seguridad.php' lo que hago es controlar si el login que llega está autentificado y si es el mismo que tiene activa la sesión en el navegador, (si está autentificado lo compruebo al principio, al conectarse el usuario a la base de datos con el siguiente script):
Código PHP:
<?
//Sentencia SQL para buscar un usuario con esos datos
$login=$_POST["login"];
$password=md5($_POST["password"]);
$sql = "SELECT * FROM usuarios WHERE ((login='".$login."') && (password='".$password."'))";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa combinación usuario/contraseña
if (mysql_num_rows($result)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$fila = mysql_fetch_assoc($result);
$_SESSION['autentificado'] = "SI";
$_SESSION['loginActivo'] = $login;
header ("Location: http://index.php?login=".$fila['login']."");
}else {
//si no existe le mando otra vez a la portada
header("Location: autentificacion.php?errorusuario=si");
}
?>
Y esto es todo lo que hago en nivel de seguridad en mi aplicación. Como os dije antes quisiera saber si está bien o es preciso tener más seguridad y posibles alternativas dado que soy nuevo en esto.
Muchas gracias