Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/11/2013, 07:40
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 11 meses
Puntos: 95
Respuesta: Encriptar contraseña y comparar para login

Con respecto a si es seguro, al contraseña en si, puedes considerarla segura. El problema con tu codigo, es que estas utilizando un API deprecada y que tu codigo es vulnerable a inyeccion de SQL.

Con respecto a la API deprecada, no utilizes las funciones mysql_ ya que estas no soportan consultas parametrizadas que son las que evitan la inyeccion de SQL.

Si utilizaras las API de mysqli o de PDO junto con consultas parametrizadas, eliminarias tu riesgo de inyeccion de SQL.

Las consultas parametrizadas, envian la consulta y los parametros por separado, lo que obliga a MySQL a interpretar el SQL original primero, y posteriormente aplicar los parametros.

Por ejemplo tu escribes:

SELECT * FROM tabla WHERE usuario='$usuario'

Sin parametrizar tu consulta, yo puedo cambiar el valor de $usuario a:

alanchavez' OR 1 = 1 --

por lo que tu consulta se convierte en

SELECT * FROM tabla WHERE usuario = 'alanchavez' OR 1 = 1

Si bien no puedo ver todos los usuarios en tu sistema, si puedo utilizar un ataque basado en tiempo para adivinarlos, por lo que tu sistema automaticamente es vulnerable a inyeccion de SQL.