Foros del Web » Programando para Internet » PHP »

Formulario de logueo correcto

Estas en el tema de Formulario de logueo correcto en el foro de PHP en Foros del Web. Hola buenas pues resulta que ya llevo un tiempo programando cosillas sencillas con php, pero ahora quiero hacer una especie de administración. La cuestión es ...
  #1 (permalink)  
Antiguo 08/08/2011, 16:10
 
Fecha de Ingreso: febrero-2008
Ubicación: Vigo, España
Mensajes: 150
Antigüedad: 16 años, 3 meses
Puntos: 0
Formulario de logueo correcto

Hola buenas pues resulta que ya llevo un tiempo programando cosillas sencillas con php, pero ahora quiero hacer una especie de administración. La cuestión es que quiero que tenga un sistema lo mas seguro posible para que no me puedan entrar sin estar correctamente logueado, y para ello he estado buscando por internet la forma mas correcta y segura de hacerlo, he encontrado un link a un artículo de php-hispano en el que explican como hacerlo, pero por lo que tengo leido no es correcto hacer directamente la consulta al mysql comparando el nombre de usuario y contraseña.

Me podriais recomendar algún sitio donde expliquen cual es la forma mas optima y segura de hacerlo?, ya tengo montado algún sistema de logueo, pero para este proyecto queria hacerlo lo mejor que se pueda.

Por cierto el link del que hablo arriba es el siguiente: http://www.php-hispano.net/archivos/...usuarios1.html

Un saludo y gracias
  #2 (permalink)  
Antiguo 08/08/2011, 16:18
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: Formulario de logueo correcto

como concejo Yo lo que siempre hago es guardar el usuario y la pass encriptados md5
  #3 (permalink)  
Antiguo 08/08/2011, 16:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Formulario de logueo correcto

no es que sea la única forma de hacerlo, se puede mientras tengas en cuenta los siguientes factores:

-evitar SQL inyections: es decir que tienes que escapar las variables de la cadena SQL
-usar algoritmos de HASH para las contraseñas, como MD5, SHA1, afines.
-evitar el uso de sesiones automáticas, corresponde a session de PHP
-implementar bloqueos por intento, por ejemplo si el usuario falla 3 veces.

@lordglazoon: no es necesario Hashear el usuario, solo la contraseña.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 08/08/2011, 22:20
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Formulario de logueo correcto

te recomiendo usar sha1() para encriptar la contraseña segun ese no hay forma actual de desencriptarlo he escuchado q el md5 ya alguien logro desencriptarlo...segun...puedes usar sha1(sha1(sha1($contrasena))); asi encriptas lo encriptdo :D....otra cosa q cuando en el momento de loguear...osea guardas la contraseña encriptada en la bd y cuando el usuario llegue e ingrese la contraseña...tu la encriptas y luego la consultas...espero haberte ayudado :D
  #5 (permalink)  
Antiguo 09/08/2011, 01:32
 
Fecha de Ingreso: febrero-2008
Ubicación: Vigo, España
Mensajes: 150
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formulario de logueo correcto

Muchas gracias, en cuanto a la encriptación me quedó ya claro, la cuestión es a la hora de entrar dentro, la verificación de si está logueado o no como sería mejor hacerlo? yo suelo hacerlo comprobando si está definida una variable en sesion. Es esa la mejor forma o como?
  #6 (permalink)  
Antiguo 09/08/2011, 08:55
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Formulario de logueo correcto

si ps yo tambien lo hago asi por ejemplo ya inicio sesion entonces ya esta iniciada la variable de session id entonces si el usuario por alguna razon esta en una pagina de logeo alli...en la validacion que ponga si ya esta establecida esa variable q lo lleve a otra pagina....la otra es que en la pagina de logeo hagas lo mismo...porseacaso si entra a la pagina principal lo redireccione para otro lugar :D
  #7 (permalink)  
Antiguo 10/08/2011, 02:28
 
Fecha de Ingreso: febrero-2008
Ubicación: Vigo, España
Mensajes: 150
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Formulario de logueo correcto

Ok entonces mas o menos como me imaginaba, mas que nada es que tenia duda por si existe algun metodo mejor o algo.

un saludo
  #8 (permalink)  
Antiguo 10/08/2011, 15:54
abd
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Formulario de logueo correcto

Hola muchachos estoy tratando de hacer un sistema de login y para eso me he guiado de el del link que dio el amigo bueno el problema es que el registrar.php no me esta registrando los datos en la bd este es el codigo:

<?php
include('conexion.php'); //incluimos el conex.php que contiene los datos de la conexión a la db

//Comprobamos que los campos usuario, clave y repetir clave se han rellenado en el form de reg.php, sino volvemos al form
if(($_POST[usuario] == ' ') or ($_POST[clave] == ' ') or ($_POST[clave1] == ' ') )
{
Header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
}else{

//Comprobamos que la clave y clave1 son iguales, sino, volvemos a reg.php
if($_POST[clave] != $_POST[clave1])
{
echo 'Las passwords no son iguales';
}else{

//quitamos el codigo malicioso de $_POST[usuario] y $_POST[clave]
$user = stripslashes($_POST["usuario"]);
$user = strip_tags($user);

$pass = stripslashes($_POST["clave"]);
$pass = strip_tags($pass);

//comprobamos que el usuario no existe en la db
$usuarios=mysql_query("SELECT usuario FROM usuario WHERE usuario='$user' ");
if($user_ok=mysql_fetch_array($usuarios))
{
echo 'El usuario ya esta registrado';
mysql_free_result($usuarios); //liberamos la memoria del query a la db
}else{

//quitamos todo el codigo malicioso de las demas variables del form de registro
$email = stripslashes($_POST["email"]);
$email = strip_tags($email);

$nom_usu = stripslashes($_POST["nom_usu"]);
$nom_usu = strip_tags($nom_usu);

$ape_usu = stripslashes($_POST["ape_usu"]);
$ape_usu = strip_tags($ape_usu);

$fecha = time();

$niv_acc = "2"; //usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)

//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO usuario(usuario,nom_usu,ape_usu,pass_usu,niv_acc,e mail,fecha)values('$user','$nom_usu','$ape_usu','$ pass','$niv_acc','$email','$fecha')");
echo 'Usuario registrado con éxito';
echo '<p><a href = "login.php">Login</a></p>';
}

}

}


?>

gracias de antemano pero creo que la falla pueda estar en el query mi tabla se llama usuario y en la parte del query donde digo los campos de la bd estan en ese estricto orden de nuevo gracias!!!!!!

Etiquetas: correcto, html, logueo, mysql, registro, formulario, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:19.