Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Skeletron en 11 Abril 2010, 23:01 pm



Título: Consulta sobre seguridad en $_SESSION
Publicado por: Skeletron en 11 Abril 2010, 23:01 pm
Hola gente..
Hoy leí algo, que luego de leer, me dieron ganas de cortarme las ******* (los asteriscos los puse yo)

La variable $_SESSION, puede ser modificada por el usuario? algo así como desde su COOKIE? O los datos de $_SESSION se mantienen en el servidor, y solo la podemos modificar desde el codigo PHP???


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: isseu en 11 Abril 2010, 23:14 pm
se mantienen en el servidor
lo unico que puede cambiar el usuario seria este identificador de sessin pero no lo que esta tiene en su interior
muy bien por preguntar
  :laugh:


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: ~ Yoya ~ en 11 Abril 2010, 23:22 pm
no man, no se puede modificar por el usuario, los datos se mantienen en el servidor...


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: haxple en 11 Abril 2010, 23:35 pm
Si se puede modificar arbitrariamente. Pero ojo, unicamente cuando register_globals = on..

Por ejemplo tu $_SESSION['user'] podria ser sobreescrito mediante el usario si mandara $_POST['user']=admin  $_COOKIE['user']=admin. etc. Busca sobre session poisoning.


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: ~ Yoya ~ en 11 Abril 2010, 23:41 pm
Osea lo que trata de decir o por lo menos entendi yo, esque si se puede modificar...
Osea en el caso de cookies, puedo buscar el archivo donde el navegador guarda las cookies y editarlo. Pero las sesiones no pueden ser modificada por el cliente de esa manera.


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: Skeletron en 11 Abril 2010, 23:42 pm
NO tengo los register_globals en ON...

Yo al comienzo de index.php, hago una comprobacion para ver si el ID que está en SESSION, coincide con otras huevadas dentro de otra variable de SESSION para ver si la sesion abierta es real, etc etc etc.. todo un quilombo he hecho por el miedo a que un usuario modifique la variable $_SESSION['idsession']... que en esa variable guardo el ID del usuario que tiene la session abierta...

Todo eso está de mas... porque jamas podran modificarlo luego de haber iniciado la sesion? :O :O :O

DIOS!!...


Todos los HTMLENTITIES y los MYSQL_REAL_ESCAPE_STRING que tengo estan de mas?!?!??!!?
:O

Creo que la web mejorará en un 50% su velocidad..
Y de por sí que ya es muy rapida


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: haxple en 12 Abril 2010, 00:13 am
NO tengo los register_globals en ON...

Yo al comienzo de index.php, hago una comprobacion para ver si el ID que está en SESSION, coincide con otras huevadas dentro de otra variable de SESSION para ver si la sesion abierta es real, etc etc etc.. todo un quilombo he hecho por el miedo a que un usuario modifique la variable $_SESSION['idsession']... que en esa variable guardo el ID del usuario que tiene la session abierta...

Todo eso está de mas... porque jamas podran modificarlo luego de haber iniciado la sesion? :O :O :O

DIOS!!...


Todos los HTMLENTITIES y los MYSQL_REAL_ESCAPE_STRING que tengo estan de mas?!?!??!!?
:O

Creo que la web mejorará en un 50% su velocidad..
Y de por sí que ya es muy rapida

No esta demas.. Si alguna vez pasas tu script a algun servidor con registerglobals en on. te podrian modificar la variable... Y para el otro amigo, si se puede moficiar la session con el mismo nombre que una cookie si registerglobals esta en on.


Título: Re: Consulta sobre seguridad en $_SESSION
Publicado por: ~ Yoya ~ en 12 Abril 2010, 00:47 am
La id de sesión sirve para llamar una sesión dentro del servidor...

Código
  1. <?php
  2. echo "Las sessiones se guardan en: ".session_save_path()."<br>";
  3. if(isset($_SESSION['ej'])){#Si esta definida la session ej, el if se ejecuta
  4. echo $_SESSION['ej'];#Imprimimo el valor de la session ej
  5. echo "<br>";
  6. echo session_id();
  7. exit;#Salimos inmediatamente
  8. }
  9. $_SESSION['ej'] = "Hola mundo";#Asignamo el valor Hola mundo a la session ej
  10. exit;#Salimos
  11.  
  12. ?>

Resultado:
Código:
Las sessiones se guardan en: /var/lib/php5
Hola mundo
e19fb57d39f9b5d745124b7785277e55

Ahora lo verificamos.

Código:
root@yoya-desktop:/var/www# ls /var/lib/php5 | grep sess_e19fb57d39f9b5d745124b7785277e55
sess_e19fb57d39f9b5d745124b7785277e55


La sesión se elimina al finalizar la sesión...