Foros del Web » Programando para Internet » PHP »

Es una forma correcta de validar login con seguridad?

Estas en el tema de Es una forma correcta de validar login con seguridad? en el foro de PHP en Foros del Web. Buenas a todos! Voy a empezar desde el principio lógicamente. Resulta que he realizado 2 webs que tengo alojadas en mi portátil, y para validar ...
  #1 (permalink)  
Antiguo 24/07/2009, 06:31
 
Fecha de Ingreso: febrero-2009
Mensajes: 132
Antigüedad: 15 años, 2 meses
Puntos: 2
Es una forma correcta de validar login con seguridad?

Buenas a todos!

Voy a empezar desde el principio lógicamente. Resulta que he realizado 2 webs que tengo alojadas en mi portátil, y para validar un usuario, al escribir este su user y pass, las envío mediante POST y en la pag. donde envío los campos compruebo que ambos no esten vacíos y que existan tanto el user como el md5 del pass en la bd. Si el valor devuelto es distinto de 0, todo bien y procedo a guardar esos datos en el array SESSION.

En un campo $_SESSION[user] guardo el usuario y en el campo $_SESSION[pass] guardo el md5 del pass. ¿Por qué hago esto? Pues por la sencilla razón de que si no lo hago, podría venir alguien, desde otra de las pags. que tengo alojadas en mi servidor, que utilice las mismas variables SESSION y lo metería directamente en mi pag. como un usuario, por tanto guardo el user y md5 del pass y cada vez que entro a cada pag. de mi web, compruebo que tanto user como md5 del pass existen en la bd.

Por tanto, en el único caso que entraría al servidor el usuario, sin haberse logueado en mi web, pero habiéndose logueado en otra de mi servidor, sería cuando en los campos SESSION[user] y SESSION[pass] coincidan con algunos de los usuarios existentes en la BD, por lo que no me parecía una forma errónea de validar, dado que si tienen user y pass...lo tienen todo.

En el caso de que ni el user ni el pass coincidan, vacío complétamente el array SESSION, sería esto correcto? O sólo debería comprobar que el contenido de SESSION[user] y SESSION[pass] esten vacíos, y en caso de no estarlo, vaciarlos...

En fin, se que en cierto modo os estoy pidiendo algo grande, porque es un tema de seguridad, pero no llevo demasiado en esto y evidentemente, si pregunto es por no saber...

P.D. El array SESSION no es accesible para los usuarios que acceden a la web no? Es un array que tiene el servidor vinculado a la IDSESSION de cada sesión activa, cierto? Porque si no sería un problema de seguridad el que en el campo SESSION[pass] guardarse el md5 del pass, pudiendo lograr algun usuario mal intencionado ese md5 y posteriormente, quien sabe, conseguir el pass real y acceder luego al sistema....
  #2 (permalink)  
Antiguo 24/07/2009, 06:55
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: Es una forma correcta de validar login con seguridad?

utiliza cookies, estas almacenan lo que tu quieras y almacenan la ruta a la pagina. con lo cual ese problema ya lo tendria solucionado. UN saludo ;)
otra opcion en guardar una sesion en que indiques la pagina en que se ha logeado
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios

Última edición por djsos; 24/07/2009 a las 07:03
  #3 (permalink)  
Antiguo 24/07/2009, 07:03
 
Fecha de Ingreso: febrero-2009
Mensajes: 132
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Es una forma correcta de validar login con seguridad?

Dejando de lado el tema de las cookies...tal como lo tengo, es válido? Y si sabes contestarme sobre la posdata, lo agradecería mucho tambien ;)
  #4 (permalink)  
Antiguo 24/07/2009, 08:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Es una forma correcta de validar login con seguridad?

Para evitarte eso es recomandable usar session_name() ya que con ese puedes tener diferentes sesiones y así no se pueden mezlcar.

Respecto a tu PD, en efecto no puedes accesara a $_SESSION desde el cliente a menos que estes usando register_globals, lee lo siguiente: http://www.php.net/security.globals

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




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