La solución para evitar la reparación de la sesión es simplemente cambiar el ID de la sesión.
bool session_regenerate_id([bool $delOldSession = false])
reemplazará el ID de sesión actual por uno nuevo y mantendrá la información de la sesión actual. Al agregar el parámetro true
: session_regenerate_id(true)
se borra la versión anterior. Si no elimina las sesiones anteriores, su aplicación web es vulnerable al secuestro de sesiones. Dejas sesiones antiguas pero válidas dentro del directorio / tmp. Esto significa:
- en los servidores de alojamiento web compartidos, algunas personas aún podrían tener acceso a ellos
- le da más oportunidad de adivinar cualquiera de su ID de sesión válida
Siempre debes destruir las sesiones antiguas con session_regenerate_id(true)
o session_destroy()
.
Sin embargo, debes tener en cuenta el rendimiento de session_regenerate_id(true)
. Lo mínimo es usarlo cuando cambie los privilegios del usuario (como inicio de sesión, cierre de sesión). Cuando lo uses con demasiada frecuencia, notarás cosas "extrañas" en tus sesiones. PHP tiene restricción en el acceso a la sesión para una sola tarea en ejecución. Múltiples solicitudes se ponen en cola. Si envías solicitudes para ayunar, entonces: