
27/11/2013, 07:40
|
| | Fecha de Ingreso: junio-2010 Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 8 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. |