Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Problema de seguridad

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> HTML
Mensaje Sab Ene 19, 2008 11:10 am
marcosss
Perlero Nuevo
Perlero Nuevo
Registrado: 14 May 2007
Mensajes: 87
Problema de seguridad Responder citando

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:

php:
<?
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();
}
?>

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):

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
Mensaje Vie Feb 29, 2008 4:27 pm
danimera
Perlero Adicto
Perlero Adicto
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
Responder citando

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.
Mensaje Sab Mar 01, 2008 11:10 pm
Jenda
Perlero Frecuente
Perlero Frecuente
Registrado: 29 Oct 2007
Mensajes: 106
Ubicación: Praga, Republica Checa
Responder citando

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?
Publicar nuevo tema   Responder al tema    Foros de discusión -> HTML Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group