Menú Principal

PHPSESID

Iniciado por Achernar, 6 Noviembre 2007, 14:19 PM

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

Achernar

Me parece que quizas ya estoy un poco pesado con las cabecera http, pero es que todavia nunca me habia metido con este protocolo.

Esta es la situacion:

1) abro una pagina en una ventana
2) guarda en mis cookies un valor de PHPSESID
3) si hago clics en sus links, las peticiones GET contienen el
    valor PHPSESID en el campo cookie de la cabecera.
4) si copio la url de un link y lo pego en la barra de direcciones
    en la misma ventana, tambien las peticiones GET van acompañadas
    de este valor PHPSESID en el campo cookie de la cabecera
5) si copio la url de un link y lo pego en la barra de direcciones
    en una nueva ventana la peticion no lleva el PHPSESID, y la respuesta
    del server me asigna uno diferente para esta nueva ventana.

para que sirve el PHPSESID?

Es posible que con esto el servidor se de cuenta de, por ejemplo, si una sesion esta siendo robada? o que estamos usando algun tipo de bot?

ademas... aùn para la misma pagina. Cada ventana tiene una cookie o este valor se guarda en algun archivo temporal de cada ventana?

Universal SAC

Citarpara que sirve el PHPSESID?

Es simple, el PHPSESSID es nada más y nada menos que la cadena o código de Identificación de la Sesión en PHP (PHP SESSion IDentification).
Cuando se usan Sesiones en php, estas funcionan almacenando información de forma temporal en el servidor, ya sea tu nombre de usuario, tu password... (tal vez cosas de la base de datos, y las guardan en un archivo temporal para evitar realizar varias consultas de la misma información, por tanto, menos tráfico ;)). Y cada usuario tiene una clave de Identificación, de manera que con esta, el servidor sabrá a que archivo temporal recurrir para pedir tu información.

CitarEs posible que con esto el servidor se de cuenta de, por ejemplo, si una sesion esta siendo robada? o que estamos usando algun tipo de bot?

De hecho, creo que no...

Lo que tú mencionas sobre "copiar una url" y en la misma ventana tiene PHPSESID como variable GET y en otra ventana no lo tiene, está totalmente fuera de lugar. Si copias un enlace será igual EN TODOS LADOS!! Lo que puede ser diferente, es que las cookies se borren inmediatamente de cerrar el navegador...
~UNIVERSAL[HACK]

Achernar

Gracias Universal SAC por interesarte, paso a explicarme un poco mejor: viste que con el protocolo http, para pedir las paginas el browser (IExplorer, Firefox, etc..) envia peticiones GET que tienen mas o menos la siguiente forma:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: HTTPTool/1.0
Connection: close
[Línea en blanco]

esa seria la peticion que haria el browser al servidor cuando uno pega la siguiente url en la barra de direcciones: www.example.com/index.html

por ejemplo si te conectas a www.elhacker.net, como en muchas otras paginas mas, cuando te logueas estas peticiones tiene un campo "Cookie: bla bla bla"
Pudiendo ser algo asi (totalmente imaginario)

GET /foro_de_php.php HTTP/1.1
Host: www.elhacker.net
User-Agent: HTTPTool/1.0
Connection: close
Cookie: cookieUser=achernar, pass=1234567890, PHPSESID=AFS54AD8F9ASa65df94FA6D
[Línea en blanco]

Esta peticion se haria cuando, ya logueados, hicieramos clic en un link que diga www.elhacker.net/foro_de_php.php

(Esto se ve con un sniffer)

ahora si en lugar de hacer clic yo copio esa url (www.elhacker.net/foro_de_php.php) y la pego en una nueva ventana... el server me va a responder asignandome un nuevo PHPSESID para esa ventana. O sea, voy a tener dos ventanas, pero cada una va a tener un PHPSESID diferente.

El PHPSESID no va enviado por la url, sino que es enviada por el server en sus repuestas que tienen mas o menos esta forma:

HTTP/1.1 200 OK
Date: Fri, 31 Dec 2003 23:59:59 GMT
Content-Type: text/html
SetCookie: PHPSESID = nuevo valor
Content-Length: 1221

<html>
<body>
<h1>Página principal de tuHost</h1>
(Contenido)
  .
  .
  .
</body>
</html>

Resumiendo:
me logueo en una pagina y en una de las siguientes respuestas del server me envia un valor de PHPSESID que voy a tener que usar en mis siguientes peticiones, todos los links que clickee en la pagina va a resultar en peticiones hechas por el browser al server con este valor de PHPSESID, pero si en lugar de hacer click en el link, pego su url en una nueva ventana, el server me asigna un nuevo valor de PHPSESID porque como el PHPSESID no viaja en la url (en este ejemplo) el server no deve verificar las ip, sino que solamente las PHPSESID, y paraciera que no tiene forma de saber que la nueva ventana esta en la misma maquina. Sin embargo si mantiene mi user logueado. Es un verdadero misterio para mi.