2009-10-17 8 views
1

Je souhaite que les utilisateurs de mon application restent connectés pendant de très longues périodes. Le problème est que la session expire à la fin du serveur, perdant ainsi des variables stockées dans la session. Donc, je mets la session à expiration dans 10 jours.Sessions PHP: que se passe-t-il si je définis l'expiration de la session sur 10 jours?

Ma question est la suivante: y a-t-il des problèmes de sécurité ou de performance liés à la définition de l'expiration du CPG et de la durée de vie des cookies à 10 jours?

ini_set('session.cookie_lifetime', 864000); 
ini_set('session.gc_maxlifetime', 864000); 

Répondre

2

Il est évident que plus le délai de session plus le risque de détournement d'avion cookie/session, mais à moins que vous avez affaire, je serais enclin à le faire avec des informations très sensibles (dossiers de santé, les services bancaires en ligne, etc.) que vous faites . En fait j'ai.

+0

Merci. Ma pensée était: Cela doit être mieux que de le stocker dans la base de données et de le récupérer chaque fois que la session expire. À votre santé! – Amer

0

Vous augmenterez le risque de détournement de session.

J'appellerais périodiquement session_regenerate(). Cela permettrait d'atténuer le risque pour les utilisateurs qui se connectent réellement, mais ne fait rien pour ceux qui ne le font pas.

+1

La seule autre façon qui me vient à l'esprit de garder un utilisateur connecté est un cookie «se souvenir de moi», mais à la réflexion, il sera également vulnérable au détournement de session. L'application que je suis en train de créer ne traite pas d'informations sensibles, donc le piratage de session est peu probable. Oh, et j'utilise déjà session_regenerate(), juste que je veux que l'utilisateur reste connecté même s'il ne prend aucune action ou quitte le site pendant une journée entière. Merci :) – Amer