Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: 0x0309 en 7 Octubre 2009, 07:44 am



Título: Sugerencia login
Publicado por: 0x0309 en 7 Octubre 2009, 07:44 am
Hola, estoy recién comenzando a jugar con las sesiones, quisiera recibir por favor sugerencias sobre este script para comprender bien la lógica.
Edito: tenía un problema, pero edito, ahora me gustaría recibir sugerencias sobre cómo mejorar el script.


Le he añadido protección básica contra fijación de sesiones y cross site request forgeries.

Código
  1. <?php
  2.  
  3.  
  4.  
  5. if (!isset($_SESSION['logeado']))
  6. {
  7. if ($_POST['user'] == 'carlos' && $_POST['password'] == 'entrar')
  8. {
  9. $_SESSION['logeado'] = true;
  10. $_SESSION['token'] = md5(uniqid(rand(), TRUE));
  11. }
  12. } else if ($_POST['logout'])
  13. {
  14. if (isset($_SESSION['token']) &&
  15.         $_POST['token'] == $_SESSION['token'])
  16.     {
  17.       $_SESSION = array();
  18.     }
  19.  
  20. }
  21.  
  22. if ($_SESSION['logeado'] == true)
  23. {
  24.   echo 'Contenido exlusivo' . '<br />';
  25. }
  26.  
  27.  
  28. ?>
  29.  
  30.  
  31. <html>
  32.  
  33. <body>
  34.  
  35. <?php
  36.  
  37. if ($_SESSION['logeado'] == false)
  38. {
  39. ?>
  40.    <form method='POST' action='login.php'>
  41.    User:
  42.     <input name="user" type="text" maxlength="50" size="20" />
  43.    Password:
  44.     <input name="password" type="text" maxlength="50" size="20" />
  45.     <input name="login" type="submit" value="Login" />
  46.    </form>
  47.  
  48. <?php
  49. } else
  50. {
  51. ?>
  52.  
  53.    <form method='POST' action='login.php'>
  54.     <input name="token" type="hidden" value="<?php echo $_SESSION['token']; ?>" />
  55.     <input name="logout" type="submit" value="Logout" />
  56.    </form>
  57.  
  58. <?php
  59. }
  60. ?>
  61.  
  62. </body>
  63.  
  64. </html>
  65.  
  66.  


Título: Re: Sugerencia login
Publicado por: GiVeN en 23 Octubre 2009, 00:52 am
Podrías tener el nombre de usuario y eso en una DB, asi podrias hacer que se registren en tu sitio, o no solo CARLOS entre ahi.
Saludos.