• Publicidad

Problema de seguridad

Preguntas y comentarios relacionadas con HTML y CSS.

Problema de seguridad

Notapor marcosss » 2008-01-19 12:10 @549

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 aconsejéis 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:

Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
<?
session_start();


if (($_SESSION['autentificado'] != "SI") || ($_SESSION['loginActivo'] != $_SESSION['loginURL'])) {
 
    //si no existe, envio a la página de autentificacion
//    header("Location: autentificacion.php");
        echo'<script language=Javascript> location.href="http://Autentificacion/autentificacion.php"; </script>';
    //ademas salgo de este script
    exit();
}
?>
 
Coloreado en 0.021 segundos, usando GeSHi 1.0.8.4

En 'seguridad.php' lo que hago es controlar si el login que llega está autenticado y si es el mismo que tiene activa la sesión en el navegador, (si está autenticado lo compruebo al principio, al conectarse el usuario a la base de datos con el siguiente script):

Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
<?
//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");
}
?>
Coloreado en 0.010 segundos, usando GeSHi 1.0.8.4


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
marcosss
Perlero nuevo
Perlero nuevo
 
Mensajes: 87
Registrado: 2007-05-14 06:23 @307

Publicidad

Notapor danimera » 2008-02-29 17:27 @769

Oiga, qué script tan poco seguro.
Pero bueno, no importa, jeje, a menos que todos los demás archivos validen esa variable sección de pronto.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor Jenda » 2008-03-02 00:10 @048

marcosss, ¿qué ocurre si pruebas a autentificarte con algún login como "d'Artagnan"?

La seguridad de tu aplicación no está en el código que autentica a tus usuarios. Es en todo el código, especialmente en lo que trabaja con los datos enviados por los usuarios. ¿Estás seguro de que solo aceptas datos sensibles? ¿Que nada que te mandan puede ser ejecutado como un SQL o PHP? ¿Que nadie puede enviarte algún código en JavaScript que va a ser ejecutado en el browser de otros usuarios?
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa


Volver a HTML

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron