Log in seguro

Iniciado por jalbtercero, 21 Mayo 2016, 13:42 PM

0 Miembros y 1 Visitante están viendo este tema.

jalbtercero

Como podria hacer este login mas seguro:

Código (php) [Seleccionar]


<center><p>
<?php
session_start
();
require(
"connect_db.php");
$nombre $_POST['userid'];
$clave $_POST['pswrd'];
$credencial $_POST['cred'];

$sql2=mysql_query("SELECT * FROM credencial");
$sql=mysql_query("SELECT * FROM login WHERE username='$nombre'");

  
if($f=mysql_fetch_array($sql)){
if($clave==$f['pass']){
$_SESSION["usuario"] = $nombre;
header("Location: inicio.php");
}else{
echo '<script>alert("CONTRASEÑA INCORRECTA")</script> ';

echo "<script>location.href='log.html'</script>";
}
}else{

echo '<script>alert("ESTE USUARIO NO EXISTE, PORFAVOR REGISTRESE PARA PODER INGRESAR")</script> ';

echo "<script>location.href='log.html'</script>";

}



 

?>

</p>



AlbertoBSD

#1
Código (php) [Seleccionar]
$sql=mysql_query("SELECT * FROM login WHERE username='$nombre'");

Eres vulnerable a SQLi te pueden hackear la base de datos si usas ese codigo, tienes que sanitizar la variable nombre para que no puedan ejecutar comandos en el Servidor mysql...

Yo lo que hago es guardar un HASH del password con el que se registraron, y despues comparo los hash.

Tambien le quito unos cuantos caracteres al hash del principio y del final...

Código (php) [Seleccionar]
$user_pass = substr(hash("sha256",$post_mysql['pwd']),2,60);
if( strcmp ($user_pass,$row['pwd']) === 0) {
...
}
else {
//Error password incorrecto
}


Y con eso evitas que si en algun momento te hackean la base de datos puedan saber la contraseña real de la persona en cuestion..


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW