start pasar paginas entre ejemplo crear close aviso php session cookies

pasar - Sesión de PHP sin cookies



session start php login (6)

No creo que sea demasiado pedirle a los usuarios que habiliten las cookies. Me parece tonto cuando las personas se apagan por completo.

De lo contrario, puede configurar su session.use_only_cookies en "0" para forzar el apéndice de una ID de sesión a las URL dentro de su php. Este enfoque, sin embargo, tiene varios inconvenientes. Principalmente el de mantener el estado dentro de la URL, a diferencia del encabezado Cookie. Si un usuario copiara y pegara la URL de la página en la que se encontraba y otra persona hiciera clic en ella, ambas usarían la misma sesión.

<?php ini_set("session.use_cookies", 0); ini_set("session.use_only_cookies", 0); ini_set("session.use_trans_sid", 1); ini_set("session.cache_limiter", ""); session_start();

¿Hay alguna manera de que pueda iniciar una sesión persistente en PHP sin la colocación de una cookie de sesión? ¿Hay otras maneras de mantener una sesión en todas las páginas, como una solución basada en direcciones IP?

Mi razón para preguntar es, aunque la mayoría de los usuarios tienen cookies activadas, quiero ver si hay una forma de que un sistema de inicio de sesión funcione para las personas con discapacidad (aunque creo que deshabilitar las cookies es paranoia innecesaria, personalmente).


Puede crear un registro de la base de datos o un archivo temporal y verificar los $_SERVER vars contra la solicitud en cada carga de página. Es un riesgo para la seguridad, pero con suficientes variables (eche un vistazo a la lista here ) puede sentir que ha tenido la oportunidad de secuestrar a un nivel aceptable; solo usted sabe qué tan segura debe ser su aplicación.


Puede establecer el ini-Value de session.use_trans_sid en true para activar la adición del id de la sesión a cada URL. Echa un vistazo a this .

Por motivos de seguridad, debe limitar la sesión a la dirección IP que creó la sesión. Sin embargo, esto no es perfectamente seguro, ya que alguien con la misma IP (detrás de un proxy, por ejemplo) podría reutilizar esa misma sesión.


Puede guardar el id. De sesión por IP en la base de datos:

Cree una tabla mysql con tres campos: session_id, ip y la clave temporal única (para usuarios registrados) o cualquier otra condición que desee. Luego apague las cookies de sesión y use_trans_sid.

luego crea un código para administrar el comportamiento de la sesión según esta nueva tabla.

after session_start() guarda session_id en la tabla y luego lo recibe de la tabla (por IP y cualquier otra condición) y luego llama

session_id($in_table_session_id);

para obtener más información y una guía completa, consulte: https://gist.github.com/mimrahe/77415f4a9e238c313bbe8c42f8a6b7fe


Puede trabajar con ID de sesión en URL e inhabilitar cookies con:

ini_set(''session.use_cookies'', 0); ini_set(''session.use_only_cookies'', 0); ini_set(''session.use_trans_sid'', 1); session_start(); // IP check if($_SESSION[''ip_check''] != $_SERVER[''REMOTE_ADDR'']){ session_regenerate_id(); session_destroy(); session_start(); } $_SESSION[''ip_check''] = $_SERVER[''REMOTE_ADDR'']; // session stuff

Nota: es altamente desaconsejable usar ID de sesión en URL. Las direcciones IP pueden cambiar cuando se viaja con una tarjeta inalámbrica y los servidores proxy tienen la misma dirección IP. Se rompe fácilmente al hacer clic en "una URL antigua" (con la ID de sesión anterior).

También podría estar interesado en crear su propia función de manejo de sesión (en conjunción con una base de datos). Ignoraría la ID de la sesión y la vincularía a la dirección IP. (vea ejemplos en http://php.net/manual/en/function.session-set-save-handler.php )

Referencias


Si quisiera hacerlo, agregaría la identificación de la sesión en el código HTML como una etiqueta de comentario y usaría y configuraría el código PHP para usar esa identificación de sesión que está incluida en el código HTML. Creo que será más relevante hacer eso en lugar de hacerlo con IP de usuario o agregar el ID de sesión en la URL.