Google
Web dns.bdat.net

Re: [PHP-ES] Una de login con sesiones

From: Vicente ( cppvic(EN)yahoo.es)
Date: Sun Sep 19 2004 - 21:44:14 CEST


Alberto escribió:

AS> ¿Que metodos proponeis? ¿Hay algun post en la lista que me resuelva esta
AS> duda (he buscado pero no he encontrado)?

depende de lo que hagas. En la seguridad hay muchas cuestiones, pero
sobre el tema concreto de la propagación de la información como sabrás
hay la sesión o la cookie.
La sesión tiene la ventaja de que puedes dar servicio a aquellas
personas que no tengan activada la admisión de cookies. Pero con las
cookies se puede controlar mejor la actividad del usuario.

AS> Por mi experiencia, encriptar el password con una cadena aleatoria en el
AS> cliente y enviar la cadena aleatoria y el hash para despues consultar la
AS> bdd encriptando tb los campos parece la alternativa mas solida, pero
AS> revisando el codigo de la pagina ¿alguien con mala idea puede crackear
AS> el hash?

un hash no se puede crackear. Otro tema, es que se pueda atrapar ese
hash por una mala implementación. Si guardas en tu base de datos un
hash del password, se trata de que ese hash no viaje entre el servidor
y el cliente.

Si en la base de datos tienes un hash, cuando el usuario se valide
con un password via formulario no debes generar ese mismo hash para
que vaya a validarse con el de la BD.
En vez de eso, antes puedes unirlo con una variable única. como la ip
del usuario, un GUID, etc.. y luego validarlo contra esa misma
concatenación hecha en el hash de la BD.

$hash_BD = md5($hash_BD.$ip)
$hash_form = md5($hash_form.$ip)

if ($hash_form == $hash_BD) {
   // padentro
} else {
  // fuera
}

De esta manera, si te miran la carpeta /tmp los identificadores de
sesiones guardarán hashes que no son los de la base de datos. Y
también si hay sniffers el usuario estará enviando un hash que no
coincidirá nunca con el hash de la BD.
Si usas cookies, es buena cosa hacer algo parecido con las variables
sensibles. Todo esto no quita que por ejemplo te puedan inyectar
código via SQL, desvelar el código, etc, Tener seguridad total es
complicado y cubre muchos puntos.

Para el tema de passwords, consulta en Google por "contraseñas de un
solo uso" , "propagación de sesiones", y así.

Saludos,

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


This archive was generated by hypermail 2.1.7 : Tue Sep 21 2004 - 21:34:44 CEST