2010-02-14 5 views

Répondre

5

La clé de session est stockée dans le navigateur du client, tandis que les données sont stockées sur le serveur. Lorsque l'utilisateur effectue une requête sur le serveur, sa clé de session est envoyée sur le réseau et les valeurs associées à sa clé sont extraites du fichier de session spécifique sur le serveur et sont rendues accessibles via $ _SESSION.

Il est possible de détourner la session d'un autre utilisateur si la clé est interceptée, c'est pourquoi vous devriez avoir dans la session des valeurs spécifiques associées à la connexion ordinateur/réseau de l'utilisateur (adresse IP par exemple).

+1

Je ne souhaite pas que l'utilisateur modifie les données. Il ne peut pas éditer les données, non? – FinalDestiny

+1

non, il ne peut pas .. –

0

Habituellement, ils sont stockés dans le répertoire/tmp d'un serveur Web si l'hôte ne fait pas attention. Cela peut être changé avec session_save_path(), c'est quelque chose que je fais avec toutes mes applications PHP qui utilisent des sessions.

2

Les données de session ne peuvent pas être modifiées par l'utilisateur, car elles sont stockées sur le serveur. L'utilisateur peut cependant commencer une nouvelle session et abandonner les données de session qu'il avait auparavant. En outre, vous devez connaître le port security issues, tel que la fixation de session.

0

Cela fonctionne comme ci-dessous:

  1. navigateur demande la page, envoyer votre identifiant ou SID session avec l'aide d'un cookie ou avec l'URL.
  2. Server trouve les fichiers de cookies dans le session_save_path() et unserializes le tableau
  3. Vous accéder à cette information avec PHP

Hélas, la seule chose que le client sait est l'ID de la session, mais qui peut être pris en otage, par exemple en utilisant des voleurs de cookies, ou d'autres méthodes de Cross Site Scripting. Si, par exemple, j'ai eu votre session SO, SO ne connaîtrait pas mieux que moi. À moins qu'ils ne vérifient aussi mon IP ou quelque chose comme ça.