Ver Mensaje Individual
  #53 (permalink)  
Antiguo 01/05/2013, 09:29
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: seguridad web

CAPITULO 8

HASH DE CONTRASEÑA

- Vamos a procedeer a registrar la contraseña hasheada en la bd en el momento del registro y despues en el login su posterior autentificacion

- que vamos a usar , pues vamos a usar crypt con el algoritmo blowfish

- El algoritmo Blowfish no puede ser aplicado en todos los sistemas. puedes revisar tu sistema con el siguiente codigo

Código PHP:
Ver original
  1. <?php
  2.  
  3. if (CRYPT_BLOWFISH == 1) {
  4.     echo "Yes";
  5. } else {
  6.     echo "No";
  7. }
  8. ?>

A partir de PHP 5.3.0 crypt , PHP contiene su propia implementación y la utilizará si el sistema carece de soporte para uno o varios de los algoritmos.


1 - registro, solo vamos a centrarnos en la pass los demas datos deberas tambien registrarlos en el mismo script pero eso no entra en este capitulo

Código PHP:
Ver original
  1. <?php
  2.  
  3. // validar datos del formulario, previamente
  4.  
  5. if(isset($_POST['password']))
  6. {
  7.  
  8. // como ejercicio se debera verificar que la contraseña tiene mas de 8 caracteres por lo menos una mayuscula y una minuscula algun numero y algunos signos que se permitan .
  9.  
  10. // tambien se debera exponer en el formulario de registro la re-pass es decir pass y re-pass ambas deben de coincidir
  11.  
  12. if($_POST['password'] != $_POST['re-password'] )
  13. {
  14. // las contraseñas no coinciden
  15. }
  16.  
  17.  
  18. $password = $_POST['password']; // password
  19. $algoritmo = '$2y$'; // blowfish
  20. $coste = '10'; // coste
  21. $salt= '$aquidebesponerelsalt$'; // el algoritmo coste y salt deberan ser el mismo en la pagina de validacion del login
  22. $hash = crypt($password,$algoritmo.$coste.$salt);
  23.  
  24. // guardamos la pass  $hash en la bd del usuario
  25.  
  26.  
  27. }
  28. ?>


2 - login

Código PHP:
Ver original
  1. <?php
  2.  
  3. // validar los datos , previamente
  4.  
  5. // extraer la pass del usuario de la bd y comparamos
  6.  
  7.  
  8. $password = $_POST['password']; // password
  9. $algoritmo = '$2y$'; // blowfish
  10. $coste = '10'; // coste
  11. $salt= '$aquidebesponerelsalt$'; // el algoritmo coste y salt deberan ser el mismo en la pagina de validacion del login
  12. $hash = crypt($password,$algoritmo.$coste.$salt);
  13.  
  14.  
  15. if ($hash == $database['password'])
  16. {
  17.     // acceso concedido
  18. }
  19. else
  20. {
  21.     // acceso denegado
  22. }
  23.  
  24. ?>


Eso es todo sobre el capitulo 8 , si sabes otras maneras o mejorar lo expuesto o solo deseas mostrar tu opinion por favor exponlo .


Saludos nos vemos nuevamente con el capitulo 9

capitulos

1 - proteger directorios :link http://www.forosdelweb.com/f18/segur...ml#post4410846
2 - mensajes de error : link http://www.forosdelweb.com/f18/segur...ml#post4412140
3 - archivo de configuracion : link http://www.forosdelweb.com/f18/segur...ml#post4412159
4 - permisos y roles : link http://www.forosdelweb.com/f18/segur...ml#post4412275
5 - verificacion de archivos : link http://www.forosdelweb.com/f18/segur...ml#post4412596
6 - configuracion de sessiones : link http://www.forosdelweb.com/f18/segur...ml#post4416219
7 - session hijacking : link http://www.forosdelweb.com/f18/segur...ml#post4419281

Última edición por webankenovi; 01/05/2013 a las 09:36