sql >> Base de Datos >  >> RDS >> Mysql

Seguridad básica, PHP mySQl

Algunas cosas aquí:

  1. Realmente no lo estás encriptando, lo estás codificando. Algo fácil de confundir para los novatos, pero solo quería sacar eso del camino.

  2. No use MD5, simplemente no es un hash muy seguro. Utilice una de las variantes SHA en su lugar si es posible.

  3. No se limite a codificar la contraseña, también querrá "saltarla". Básicamente, esto implica agregar una cadena aleatoria a la contraseña antes de codificarla y almacenar esa cadena aleatoria en algún lugar donde pueda recuperarla más tarde (para que pueda validar el hash cuando el usuario ingrese su contraseña). Esto ayuda a prevenir ataques de diccionarios precalculados.

En cuanto a generar la contraseña, creo que está en el camino correcto:simplemente la generaría cuando creen su cuenta, se la enviaría por correo electrónico, luego la cifraría y almacenaría el hash (y una sal aleatoria) en el registro de usuario en el DB.