Section courante

A propos

Section administrative du site

Introduction

Il est fort agréable d'utiliser les sessions en PHP pour sécuriser une application, toutefois il est fort gênant pour une application, de pertes des sessions pour des questions assez inexpliquées.

Bien sûr on voudrait bien que les sessions se perdent uniquement lorsqu'elles sont expirées, toutefois, la variété des réseaux et technologies du Web, fait en sorte qu'il en est vraiment souvent autrement.

Cause

Qu'est-ce qu'y peut provoquer une perte de session :


Si la stabilité de vos sessions sous PHP est toujours en cause après ses résolutions de problème, il est souvent préférable d'utiliser les sessions d'un cadre d'application comme CodeIgniter plutôt que ceux d'origine du PHP. Car ils sont souvent plus sécuritaires et plus stables.

Bien que, déconseillé pour la sécurité, on peut utiliser une technique semblable à celle-ci afin de forcer la conservation d'une session manuellement en passant comme paramètre URL l'identificateur de session :

  1. <?php
  2. session_start();
  3. session_name($_GET['PHPSESSID']); 
  4. echo "session_id=".session_id();
  5. ?>

Conclusion

Les solutions les plus communes consiste à utiliser la fonction session_write_close à des endroits appropriés dans le code source PHP ou bien faire en sorte d'utiliser le même serveur uniquement pour les sessions (comme un serveur dédié). Également, le fait d'effectuer une vérification IP pour déterminé qu'il s'agit du même serveur peut considérablement réduire les risques.

Voir également

Langage de programmation - PHP - Accueil

Dernière mise à jour : Vendredi, le 16 janvier 2015