Después de que el navegador deshabilite las cookies, cómo utilizar la sesión y encontrar una solución.
La reescritura de la URL de la sesión garantiza que cuando el cliente deshabilite o no admita COOKIE, la sesión aún pueda usarse.
Mecanismo de conversación. El mecanismo de sesión es un mecanismo del lado del servidor. El servidor utiliza una estructura similar a una tabla hash (es decir, se puede usar una tabla hash) para guardar información.
Cuando un programa necesita crear una sesión para una solicitud de un cliente, el servidor primero verifica si la solicitud del cliente ya contiene un identificador de sesión (llamado ID de sesión). Si es así, significa que se ha creado una sesión para el cliente anteriormente y el servidor recuperará la sesión según la identificación de la sesión para su uso (si no se puede recuperar, se creará una nueva). Si la solicitud del cliente no incluye una identificación de sesión, cree una sesión para el cliente y genere una identificación de sesión asociada con la sesión. El valor de la identificación de la sesión debe ser una cadena que no pueda repetirse y que no pueda descubrirse ni imitarse fácilmente. La identificación de la sesión se devolverá al cliente para que la guarde en la respuesta. Se puede utilizar una cookie para guardar este ID de sesión, de modo que el navegador pueda reproducir automáticamente este identificador en el servidor de acuerdo con las reglas durante la interacción. Normalmente, esta cookie se denomina algo así como SEEESIONID. Sin embargo, las cookies se pueden deshabilitar artificialmente, por lo que debe haber algún otro mecanismo para devolver la identificación de la sesión al servidor cuando la cookie está deshabilitada.
Una técnica utilizada con frecuencia se llama reescritura de URL, donde la identificación de la sesión se agrega directamente a la ruta de la URL.
Otra técnica se llama formar campos ocultos. Es decir, el servidor modificará automáticamente el formulario y agregará un campo oculto para que la identificación de la sesión pueda devolverse al servidor cuando se envíe el formulario.
Campos ocultos del formulario, por ejemplo:
¿formulario lt? nombre=""formulario de prueba " "? acción = " "/XXX " " gt;? ¿Tiene entrada? tipo=""oculto " "? nombre=""jsessionid " "? valor = " " byok3vjfd 75 APN RF 7 C2 HMD NV 6 qzcebzwowibyenlerjq 99 zwpbng! -145788764 "? lt input? type = " " text " " gt? lt/form gt; reescritura de URL:
/test; jsessionid = byok3vjfd 75 APN RF 7 C2 hmdnv 6 qzcebzwowibyenlerjq 99 zwpbng! - 145788764