Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2010, 12:31
ebalmaceda
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 17 años
Puntos: 0
Es Seguro mi Sistema de Login??

hola amigasos!
Acabo de realizar el sistema de Login para un sistemita en Php, pero necesito saber si es "seguro".
Me dan una mano?

Una funcion para evitar el sqlInjection:
Código PHP:
/** Escapa la cadena, verificando si "Comillas maginas" esta activo o no. */
function mysql_escape($cadena
{
    
$cadena trim($cadena);
    if(
get_magic_quotes_gpc() != 0
    {
        
$cadena stripslashes($cadena);
    }
    return 
mysql_real_escape_string($cadena);





Este es el formulario donde pones el email y la contraseña:
Código PHP:
echo "<form action=\"scripts/iniciar-sesion.php\" method=\"post\">
                          <table align=\"center\" width=\"700\" border=\"1\">
                            <tr>
                                <td colspan=\"2\"><p align=\"center\"><b>Inicia Sesion:</b></p></td>
                            </tr>
                            <tr>
                                <td>Email:</td>
                                <td><input type=\"text\" name=\"email\" /></td>
                            </tr>
                            <tr>
                                <td>Password:</td>
                                <td><input type=\"password\" name=\"password\" /></td>
                            </tr>
                            <tr>
                                <td colspan=\"2\"><p align=\"center\"><input type=\"submit\" value=\"Enviar\" /></p></td>
                            </tr>
                        </table>
                    </form>"


El codigo que verifica si la contraseña el usuario son correctos:

Código PHP:
//Para utilizar las variables de sesion:
session_start();

//incluyo el archivo de conexion a la base de datos:
include '../db/base-de-datos.php';
//incluyo para poder usar la funcion de escape:
include '../funciones/funciones-generales.php';
include 
'../funciones/funciones-sql.php';

//Variables que vienen del formulario limpiadas de caracteres incorrectos:
$email mysql_escape($_POST['email']);
$password mysql_escape($_POST['password']);
$password md5($password);



//VALIDAMOS LOS FORMULARIOS:
//Controlamos que los campos obligatorios no esten vacios:
if ($email == '')
{
    
$_SESSION['mensaje'] = "Debe completar el campo Email.<br / > <br /> 
    <input type= \"button\" value=\"Volver atrás\" onclick=\"history.back()\">" 
;
    
header ("Location: ../mensaje.php");
    exit();
}
elseif(
$password == '')
{
    
$_SESSION['mensaje'] = "Debe completar el campo Password. <br / > <br /> 
    <input type= \"button\" value=\"Volver atrás\" onclick=\"history.back()\">" 
;
    
header ("Location: ../mensaje.php");
    exit();
}
else
{
    
//SI TODO ESTA BIEN:    
    
    //El query que se ejecutara en la base de datos:
    
$cadena "select * from usuarios where emailUsuario = '$email' and passwordUsuario = '$password'";
    
$ejecutarSql mysql_query($cadena);    

    
//Ejecuto el Query:
    //Si el usuario y password son correctos:
    //fetch_array retorna los datos de las filas en un vector, sino da false.
    
if ($fila mysql_fetch_array($ejecutarSql)) 
    {
        
//Pongo la variable de sesion en True asiganandole el ID del usuario actual.
        //Con el Id de usuario podemos actualizar o ver cualquier dato del usuario.
        
$_SESSION['usuarioRegistrado'] = $fila['idUsuario'];
        
        
//Si el usuario es administrador...
        
if($fila['esAdminUsuario'] == 1)
        {
            
$_SESSION['usuarioAdmin'] = $fila['idUsuario'];
            
//Redirecciono al panel de control
            
header ("Location: ../admin.php");
            exit();
        }    
    }
    else
    { 
        
$_SESSION['mensaje'] = "Error! Usuario o contraseña incorrecta. <br /> <br / > <br /> 
        <input type= \"button\" value=\"Volver atrás\" onclick=\"history.back()\">" 
;
        
header ("Location: ../mensaje.php");    
    }    


Por ultimo para verificar si el usuario es Administrador hago asi:
Código PHP:
    //Esto me dice si es Usuario Registrado...
    
$idUsuarioRegistrado $_SESSION['usuarioRegistrado'];
    
    
//Esto me dice si el usuario registrado es Administrador...
    
$idAdmin $_SESSION['usuarioAdmin'];    
    
        
//SI EL USUARIO ES ADMINISTRADOR:
    
if($idAdmin)
    {


    }
    
//SI EL USUARIO NO ES ADMINISTRADOR:
    
else 
    {

         } 

Un abrazo a todos!