estoy creando un sistema de login para mi web pero veo que me estoy liando y nose de que forma hacerlo seguro, esto es lo que llevo hecho:
esta es la tabla SQL:
Código
CREATE TABLE users( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), username VARCHAR(30) NOT NULL, password VARCHAR(20) NOT NULL); -- USERS -- INSERT INTO `users` VALUES (1, 'admin', '827ccb0eea8a706c4c34a16891f84e7b');
Aquí el code php (login.php):
Código
<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = '12345'; $db = 'web'; echo "Ya estás autentificado"; } if ($_POST['username']) { $username = $_POST['username']; $password = $_POST['password']; if ($password==NULL) { echo "La password no fue enviada"; } else{ $query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); echo "Login incorrecto"; } $query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error()); $_SESSION["admin_username"] = $row['username']; echo "Has sido logueado correctamente ".$_SESSION['admin_username']." y puedes acceder al admin.php."; } } ?> <form action='login.php' method='POST'> <table style='border:1px solid #000000;'> <tr> <td align='right'> Nombre de usuario: <input type='text' size='15' maxlength='25' name='username'> </td> </tr> <tr> <td align='right'> Password: <input type='password' size='15' maxlength='25' name='password'> </td> </tr> <tr> <td align='center'> <input type="submit" value="Login"> </td> </tr> <tr> <td align='center'> </td> </tr> </table> </form>
Creo que me estoy complicando bastante para lo que quiero hacer, tambien hay un par de SQL Injections por ahí... ¿Como lo podría mejorar? ¿Qué cambiarian del código? ¿Cómo lo puedo hacer más seguro?
cheers!