Consulta sobre seguridad en $_SESSION

Iniciado por Skeletron, 11 Abril 2010, 23:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

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???

isseu

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:

~ Yoya ~

no man, no se puede modificar por el usuario, los datos se mantienen en el servidor...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

haxple

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.
What does your conscience say? — "You shall become the person you are."

~ Yoya ~

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.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Skeletron

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

haxple

Cita de: 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

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.
What does your conscience say? — "You shall become the person you are."

~ Yoya ~

La id de sesión sirve para llamar una sesión dentro del servidor...

Código (php) [Seleccionar]
<?php
session_start
();
echo 
"Las sessiones se guardan en: ".session_save_path()."<br>";
if(isset(
$_SESSION['ej'])){#Si esta definida la session ej, el if se ejecuta
echo $_SESSION['ej'];#Imprimimo el valor de la session ej
echo "<br>";
echo 
session_id();
exit;
#Salimos inmediatamente
}
$_SESSION['ej'] = "Hola mundo";#Asignamo el valor Hola mundo a la session ej
exit;#Salimos

?>


Resultado:

Las sessiones se guardan en: /var/lib/php5
Hola mundo
e19fb57d39f9b5d745124b7785277e55


Ahora lo verificamos.

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



La sesión se elimina al finalizar la sesión...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.