Foros del Web » Programando para Internet » PHP »

Mi Autentificación es malísima, brothers.

Estas en el tema de Mi Autentificación es malísima, brothers. en el foro de PHP en Foros del Web. Saludos ! Para autentificar usuarios hago algo que yo creí muy lógico y ya funciona, pero ahorita vi un error de seguridad garrafal ! Código ...
  #1 (permalink)  
Antiguo 29/12/2005, 23:19
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Mi Autentificación es malísima, brothers.

Saludos !

Para autentificar usuarios hago algo que yo creí muy lógico y ya funciona, pero ahorita vi un error de seguridad garrafal !

Código PHP:
 echo "
 <h2>Ingreso como Administrador</h2>
 <form metod=\"POST\" action=\"login.php\">
 <p>Usuario <input type=\"text\" name=\"username\"></p>
 <p>Contraseña <input type=\"password\" name=\"passwd\"></p>
 <p><INPUT TYPE=\"submit\" VALUE=\"Enviar\"> <a href=\"login.php?olvidepasswd\">¿Olvidó su contraseña?</a></p>
 </form>"

Esos dos parámetros los uso para comprobar que existan en la base de datos y si son válidos entonces registro la sesión.

En login.php muestro ese formulario. ¿Cuál es el resultado?

Que se muestra en la barra de direcciones:

http://misitio/login.php?username=ad...swd=mipassword

Y cualquiera que ande por ahí puede verlo. ¿Tengo que meterme en cuestiones de encriptación o es algo sencillo que no alcanzo a ver?

Thanks !
  #2 (permalink)  
Antiguo 30/12/2005, 04:35
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
No creo que tengas que meterte en cuestiones de encriptación. A mi, lo que me extraña es que te salgan las variables en la URL ya que el método del formulario es POST. Quizás tenga algo que ver con la configuración de tu PHP. Suerte.
  #3 (permalink)  
Antiguo 30/12/2005, 04:41
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Exclamación Eso sí que es extraño !

Tienes razón, si es POST no deberían salir mis variables en la barra de direcciones.

Me pregunto qué pasará. Al menos ya tengo un hilo de por dónde buscar, saludos.
  #4 (permalink)  
Antiguo 30/12/2005, 06:01
Avatar de Keleriano  
Fecha de Ingreso: junio-2002
Ubicación: Granada
Mensajes: 133
Antigüedad: 15 años, 5 meses
Puntos: 0
Cita:
Iniciado por uamistad
Tienes razón, si es POST no deberían salir mis variables en la barra de direcciones.

Me pregunto qué pasará. Al menos ya tengo un hilo de por dónde buscar, saludos.

El problema es que pones metod cuando realmente has de poner method. Tan simple como meter una h intercalada ;)
  #5 (permalink)  
Antiguo 30/12/2005, 06:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Keleriano
El problema es que pones metod cuando realmente has de poner method. Tan simple como meter una h intercalada ;)
Así es .. si no se indica un "method=" valido .. el navegador (la mayoría por no decir todos?) omite dicha propiedad del tag "<form>" y asume que envias los datos por GET en lugar de POST.

De hecho si en "login.php" tomases tus variables por $_POST .. nunca te hubiera funcionado tu sistema de autentificación y hubieras visto el problema antes. (además de asegurar tu sitema).

¿Como tratas las variables en tu "login.php" de las que te llegan de ese formulario? ...

Un saludo,
  #6 (permalink)  
Antiguo 30/12/2005, 10:27
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
óRALE, you're right !!

Jeje, eso estuvo de lujo, qué sencillo estaba, Keleriano, gracias !

Cluster, mis variables las uso tal cual las capturo: $variable1, $variable2 sin usar $_POST["variable1"].

Vi en un manual que antes se usaba algo como: $HTTP_POST_VARS o algo así, y que luego ya era más sencillo usar $_POST y que luego ya era más sencillo todavía usar la variable tal cual.

Es por eso que según yo, programando en versiones más recientes de PHP, sin que me preocupe que no sea compatible con versiones antiguas, uso las variables tal cual las tomo, pero no tenía idea que me ayudara a visualizar mis errores de dedazos o mala sintaxis.

Por sus aportaciones, mil gracias !!!!!!!

QUE SEAN DOS MIL, mejor !!!
  #7 (permalink)  
Antiguo 30/12/2005, 10:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero igualmente programa usando los arrays superglobales, es una cuestión de seguridad (para tus aplicaciones) y de compatibilidad según configuración de PHP (para no depender de ella en ese aspecto: register_globals)

Un saludo,
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 02:38.