Que sont les cookies et les sessions, et comment ils se rapportent les uns aux autres?
Je suis en train d'essayer de comprendre les cookies et les sessions de façon professionnelle.
Je sais que lorsqu'un navigateur se connecte à un serveur, le serveur "se demande" le navigateur "coller" un cookie avec "phpsessid" dans le navigateur client dossier cookies.
Maintenant que nous avons la "phpsessid", si le client entre dans le serveur, le navigateur envoie au serveur le "phpsessid" et le serveur prend un regard sur le dossier tmp et si nous avons un match de chargement arrière toutes les données de l'utilisateur a pour ce client, mais je suis un peu confus avec le processus.
Je serai reconnaissant si quelqu'un peut m'aider à comprendre ces processus de création d'une session et cookies - ce qui se passe derrière les coulisses.
- Il semble que vous savez déjà ce qui se passe. Qui partie spécifique aimeriez-vous être informé? Le HTTP/cookie partie, ou comment PHP charges de la session magasin?
- Le cookie que le navigateur est l'enregistrement avec le phpsessid, est-ce le phpsessid à identifier le client pour la création de sessions et les cookies?
- Le cookie sur le navigateur contient le php id de session, qui indique au serveur "hé, je sais que ce chap", le serveur puis saisit les données de la session (à partir de /tmp/ par exemple) et restaure l'utilisateur $_SESSION
- Oui, je sais, mais je me demande, est-ce "phpsessid" est à l'aide d'identifier le client avant la création de sessions et les cookies, est-ce phpsessid est, y compris à l'intérieur du cookie de données et l'ordinateur client et à l'intérieur du fichier de session sur le serveur dossier tmp?
Vous devez vous connecter pour publier un commentaire.
Voyons ceci:
Les Cookies et des séances de sont les deux moyens de préserver l'application de l'état entre les différentes demandes du navigateur. C'est grâce à eux que, par exemple, vous n'avez pas besoin de vous connecter chaque fois que vous demandez une page sur StackOverflow.
Cookies
Les Cookies sont de petits morceaux de données (maximum de 4 KO de long), qui contiennent des données dans une clé=valeur de paires:
Ces sont définis par JavaScript, ou via le serveur à l'aide d'un L'en-tête HTTP.
Les Cookies ont une date d'expiration datetime ensemble, par exemple en utilisant les en-têtes HTTP:
Qui serait la cause de la navigateur pour définir un cookie nommé
name2
avec une valeur devalue2
, qui expire dans 9 ans.Cookies sont considérés comme de grande insécurité, car l'utilisateur peut facilement manipuler leur contenu. C'est pourquoi vous devez toujours valider les données de cookie. Ne pas assumer ce que vous obtenez à partir d'un cookie est nécessairement ce que vous attendez.
Les Cookies sont généralement utilisés pour préserver l'état de connexion, où un nom d'utilisateur et un spécial de hachage sont envoyés à partir du navigateur et le serveur vérifie sur la base de données à approuver l'accès.
Les Cookies sont également souvent utilisés dans sessions création.
Sessions
Séances sont légèrement différentes. Chaque utilisateur obtient un ID de session, qui est envoyé vers le serveur de validation, soit par cookie ou par OBTENIR variable.
Séances sont habituellement de courte durée, ce qui les rend idéales dans l'économie d'état temporaire entre les applications. Les Sessions expirent également une fois que l'utilisateur ferme le navigateur.
Séances sont considérés comme plus sûrs que les cookies car les variables sont eux-mêmes conservés sur le serveur. Voici comment cela fonctionne:
$_SESSION
superglobale.Si PHP ne trouve pas de correspondance, il va commencer une nouvelle session, et répétez les étapes de 1 à 7.
Vous pouvez stocker des informations sensibles sur une session, car il est conservé sur le serveur, mais sachez que l'ID de session peuvent être volés si l'utilisateur, disons, enregistré dans plus d'une insécurité WiFi. (Un attaquant peut renifler les cookies, et le définir comme son propre, il ne verra pas les variables elles-mêmes, mais le serveur va identifier l'attaquant utilisateur).
C'est l'essentiel. Vous pouvez en apprendre plus sur le manuel PHP sur ces deux sujets.
hello.php?sid=cbe709ac7bed98f7ecb89713
)