Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Método de autenticación

Estas en el tema de Método de autenticación en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, buenos días Tengo una duda de como implementa Laravel su sistema de autenticación. Tengo Laravel 6+ e implemente el método de autenticación correspondiente a ...
  #1 (permalink)  
Antiguo 17/09/2020, 11:35
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 824
Antigüedad: 15 años, 6 meses
Puntos: 25
Método de autenticación

Hola, buenos días

Tengo una duda de como implementa Laravel su sistema de autenticación. Tengo Laravel 6+ e implemente el método de autenticación correspondiente a esa versión. El método funciona bien, pero mi duda recae en lo siguiente:

En el archivo del controlador

Código PHP:
protected function create(array $data)
    {
        return 
User::create([
            
'name' => $data['name'],
            
'email' => $data['email'],
            
'password' => Hash::make($data['password']),
            
'phone' => '0',
            
'time_zone' => '0'
        
]);
    } 
Cada que creo un usuario nuevo, en mi base de datos se guarda la cadena generada por el hash. Hice algunas pruebas con el mismo password y me arrojo cadenas diferentes:

Código PHP:
$2y$10$0LtGKKLlziZFcN6FGMRSKuQnR9pJpWAELooN/vMH7eMjGBNXgzCZe
$2y$10$VSZjmbqz0Fhjsg6yKc5QJudCG0d.czrXq9Ui9dbkZfP8t6ANRLzse
$2y$10$Uq6KNcYKVawwf0yO4fNvyepRze50gr3y2RHc/6//g3voblBC6mszy 
todas con el mismo password.

Ahora, en mi página desarrollada en Laravel, no voy a usar los métodos de login, ni cambiar password, solo voy a generar el registro. En otro sistema que tenemos en PHP, si vamos a usar el login con esos registros realizados. Sin embargo, si la cadena es diferente cada que se genera, aún siendo el mismo password, ¿cómo puedo loguearme con la misma? No sé si me explico.

Estoy tratando de usar los métodos en la documentación de PHP, usando:

Código PHP:
 $opciones = [
            
'cost' => 10,
        ];
        
$encrypt password_hash($param02PASSWORD_BCRYPT$opciones); 
Donde $param02, es el password que capturo en el formulario de login.

Quizá estoy haciendo algo mal o me faltan algunos pasos. Mi pregunta sería. ¿Cómo logro loguearme con el password registrado en la forma de registro de Laravel usando el formulario de login de mi otro sistema de PHP?

De antemano, agradezco por sus comentarios.

Saludos!!
  #2 (permalink)  
Antiguo 17/09/2020, 11:58
 
Fecha de Ingreso: abril-2006
Mensajes: 475
Antigüedad: 14 años, 6 meses
Puntos: 107
Respuesta: Método de autenticación

mi estimado lo que esta haciendo "Hash::make" esta creando un HASH, pero tambien esta agregando un SALT aleatorio

en resumidas cuentas a modo de ilustrar seria algo asi

Código PHP:
Ver original
  1. <?php
  2. function emular_hash_make($password){
  3.     $salt = rand(100,9999);
  4.     return md5($password . $salt);
  5. }
  6. $PASSWORD = "123456";
  7.  
  8. if(emular_hash_make($PASSWORD ) != emular_hash_make($PASSWORD )){
  9.     echo "por el SALT nunca sera igual";
  10. }else{
  11.     echo "el salt es debil pero si te sale este mensaje, ve y comprate la loteria";
  12. }

por lo que debes de leer la documentacion de laravel, y usar otra funcion. para encriptar las contraseñas , antes se usaba md5("password"), pero el HASH que daban era debil y por ello es facilmente revertible si es que logran pillar el HASH, pero eso solo puede ocurrir si capturan o tienen acceso a tu BASe de datos, o a tus archivos PHP. pero de nada serviria toda la proteccion, por que si yo tuviera acceso a tus archivos PHP, le pondria un KEYLOOG, y cada que un usuario haga login, capturaria el PASSSWORD antes de ser encriptada, y lo almacenaria o simplemente haria un GET a mi sitio de contraseñas.

mucha gente aun sigue usando la MISMA PASWORD para todo, apra redes sociales y sus cuentas bancarias. yo generalmetne uso 4 tipos de password, las financieras, personales, servicios de pago y password basura(para cualquier sitio que desconosco)

asi que en resumidas cuentas no te rompas mucho la cabeza en encriptar PASSWORD, mas bien hazlo en preservar seguro tu sitio web, tenerlo actualizado, verificar que todo ande bien, revisar los LOGS,etc
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #3 (permalink)  
Antiguo 17/09/2020, 12:20
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 824
Antigüedad: 15 años, 6 meses
Puntos: 25
Respuesta: Método de autenticación

A lo que te refieres, en pocas palabras, podría usar, por ejemplo:

md5($miPassword);

y si mi sitio en general, es seguro, mi base de datos es segura, no importa si uso ese método o no.

Es cierto, la gente usa cosas como 12345678, 786543210, y tonterías básicas para sus passwords con el argumento de "es que me es difícil acordarme de una contraseña muy larga porque bla, bla, bla...". Te lo comento porque cuando creo cuentas de correo para mis clientes y les envío contraseñas con muchos caracteres raros casi casi se me van a la yugular...
  #4 (permalink)  
Antiguo 17/09/2020, 18:14
 
Fecha de Ingreso: abril-2006
Mensajes: 475
Antigüedad: 14 años, 6 meses
Puntos: 107
Respuesta: Método de autenticación

Cita:
Iniciado por Middrel Ver Mensaje
A lo que te refieres, en pocas palabras, podría usar, por ejemplo:

md5($miPassword);

y si mi sitio en general, es seguro, mi base de datos es segura, no importa si uso ese método o no.

Es cierto, la gente usa cosas como 12345678, 786543210, y tonterías básicas para sus passwords con el argumento de "es que me es difícil acordarme de una contraseña muy larga porque bla, bla, bla...". Te lo comento porque cuando creo cuentas de correo para mis clientes y les envío contraseñas con muchos caracteres raros casi casi se me van a la yugular...
si exactamente, el metodo no importaria, pero seria bueno que el metodo que uses salga de lo comun,

como te mencion podrias poner

md5($password."constante_anti_hacker");

asi en parte evitarias que si capturan tu base de datos de usuarios el hash que extraigan les rompera la cabeza, ya que la mayoria usab bots automatizados, que suelen revertir el hash y luego se dan a la tarea de probar Correo,facebook,etcetc si alguno ingresa lo dan por luz Verde, y si no da simplemente pasan al otro.

y por ello mira tambien este POST, que te puede interesar de casos de inyeccion

http://www.forosdelweb.com/f18/ataque-por-xxs-1164308/

. ser precavido no esta mal, pero empieza siempre por lo importante


aaaahhhh y si tus clientes quieren contraseñas faciles, dales faciles de recordar y aleatoras como

bolivia6agosto

chile123picante

vivamexicokbrones1

cosas complicadas pero faciles de recordar. yo generalmente puedo tomar incluso las iniciales de mis clientes para su password y numeros sencillos
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #5 (permalink)  
Antiguo 18/09/2020, 14:23
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 824
Antigüedad: 15 años, 6 meses
Puntos: 25
Respuesta: Método de autenticación

Ok, enterado tuadmin,

Entonces haré algunas revisiones y cerciorarme de que mi sitio sea seguro, revisar las implementaciones del password y ponerles claves más complejas a mis clientes por llorones (esto último por molestarlos) :P

Te agradezco por la información ¡Saludos!



La zona horaria es GMT -6. Ahora son las 05:26.