Les Cookies vs sessions

j'ai commencé à utiliser PHP il y a quelques mois. Afin de créer un système de connexion pour mon site web, j'ai lu des informations sur les cookies et les sessions et leurs différences (les cookies sont stockés dans le navigateur de l'utilisateur et les sessions sur le serveur). À l'époque, j'ai préféré les cookies (et qui n'aime pas les cookies?!) et a juste dit: "qui s'en soucie? Je n'ai pas beaucoup d'affaire avec le stockage dans mon serveur", donc, je suis allé de l'avant et utilisé des cookies pour mon projet bachelor graduation. Cependant, après avoir fait le gros du travail de mon application, j'ai entendu que pour le cas particulier de stocker l'ID de l'utilisateur, les sessions sont plus appropriées. Alors j'ai commencé à réfléchir à ce que je dirais si le jury me demandait pourquoi vous avez utilisé des cookies plutôt que des sessions? J'ai juste cette raison (que je n'ai pas besoin de stocker des informations internes sur l'utilisateur). Est-ce assez comme raison ? ou c'est plus que ça?

pourriez-vous s'il Vous Plaît me parler des avantages/inconvénients de l'utilisation de cookies pour la conservation ID de l'utilisateur?

Merci pour vous tous à StackOverflow!

145
demandé sur Nadjib Mami 2011-06-06 18:36:25

10 réponses

le concept est de stocker des données persistantes à travers les charges de page pour un visiteur web. Les Cookies Le stockent directement sur le client. Les Sessions utilisent un cookie comme une clé de tri, pour s'associer avec les données stockées du côté du serveur.

il est préférable d'utiliser les sessions car les valeurs réelles sont cachées au client, et vous contrôlez quand les données expirent et deviennent invalides. Si tout était basé sur des cookies, un utilisateur (ou un hacker) pourrait manipuler leurs données de cookie et puis jouer des requêtes à votre site.

Edit: Je ne pense pas qu'il y ait d'avantage à utiliser des cookies, autre que la simplicité. Regardons cela de cette façon... L'Utilisateur a-t-il une raison de connaître son numéro D'identification? En général, je dirais que non, l'utilisateur n'a pas besoin de cette information. Donner de l'information devrait être limitée à un besoin de savoir. Que faire si l'utilisateur change son cookie pour avoir un ID différent, comment votre application répondre? C'est un risque pour la sécurité.

avant les sessions étaient toute la rage, j'avais fondamentalement ma propre implémentation. J'ai stocké une valeur de cookie unique sur le client, et stocké mes données persistantes dans la base de données avec cette valeur de cookie. Puis sur les requêtes de page j'ai fait correspondre ces valeurs et j'ai eu mes données persistantes sans laisser le client contrôler ce que c'était.

171
répondu Fosco 2011-06-06 14:59:14

idées de base pour distinguer entre ces deux.

Session:

  1. UDI est stocké sur le serveur (c'est à dire du côté serveur)
  2. plus sûr (à cause de 1)
  3. Expiration ne peut pas être définie, les variables de session seront expirées lorsque les utilisateurs ferment le navigateur. (de nos jours, il est stocké pendant 24 minutes par défaut en php)

Cookies:

  1. UDI est stocké sur navigateur web (client-side)
  2. pas très sûr, puisque les pirates peuvent atteindre et obtenir vos informations (à cause de 1)
  3. L'Expiration peut être définie (voir setcookies () pour plus d'informations)

la séance est préférée lorsque vous avez besoin de stocker des informations/valeurs à court terme, telles que des variables pour calculer, mesurer, interroger, etc.

Cookies est préférable lorsque vous avez besoin de stocker des informations/valeurs à long terme, tels que le compte de l'utilisateur (de sorte que, même lorsqu'ils coupent l'ordinateur pendant 2 jours, leur compte sera toujours connecté). Je ne peux pas penser à beaucoup d'exemples de cookies car il n'est pas adopté dans la plupart des situations.

95
répondu Reyske 2014-08-28 12:06:32
SESSIONS ENDS WHEN USER CLOSE HIS BROWSER,

COOKIES ENDS DEPENDING ON THE LIFE TIME YOU SET FOR IT. SO IT CAN LAST FOR YEARS

C'est la différence majeure. dans votre choix,

si vous voulez que l'idu soit mémorisé longtemps, alors u doit utiliser des cookies, sinon si vous voulez juste que le site web reconnaisse l'utilisateur pour cette visite seulement alors sessions est votre homme.

espère que cela aide :)

-- autre explication.

Sessions est stocké dans un fichier que votre serveur php générera, et pour se rappeler quel fichier est pour lequel utilisateur, php va également configurer un cookie sur le navigateur de l'utilisateur qui bloque l'id de fichier de cette session, donc lors de sa prochaine visite php lira ce fichier et rechargera la session.

maintenant php par défaut clear sessions every interval, et aussi naming convention of session font qu'il expire automatiquement. de plus, les navigateurs ne conserveront pas les témoins qui détiennent l'id de session une fois fermé/l'historique effacé.

il est important de noter que les navigateurs nowdays prennent également en charge un autre type de moteurs de stockage qui sont :-

LocalStorage, SessionStorage, et d'autres moteurs webdb que le code javascript peut utiliser pour enregistrer des données à votre ordinateur pour se souvenir de vous. il suffit d'ouvrir la console javascript à l'intérieur de facebook par exemple et de taper "localStorage" enter. il vous montrera toutes les variables que fb utilise pour se souvenir de vous sans cookies.

36
répondu Zalaboza 2017-12-27 13:41:40

lorsque vous enregistrez le #ID comme cookie pour reconnaître les utilisateurs connectés, vous montrez en fait aux utilisateurs des données qui ne sont pas liées à eux. En outre, si un tiers essaie de définir des identifiants aléatoires comme données de cookie dans leur navigateur, ils seront en mesure de convaincre le serveur qu'ils sont un utilisateur alors qu'ils ne sont pas réellement. C'est un manque de sécurité.

vous avez utilisé des cookies, et comme vous l'avez dit, vous avez déjà terminé la plupart du projet. en outre cookie a le privilège de rester longtemps, pendant que les sessions se terminent plus rapidement. Les sessions ne sont donc pas appropriées dans ce cas. En réalité, de nombreux sites Web et services célèbres et populaires utilisent cookie et vous pouvez rester connecté pendant une longue période. Mais comment pouvez-vous utiliser leur méthode pour créer un processus de connexion plus sûr?

voici l'idée: vous pouvez aider la façon dont vous utilisez les cookies: si vous utilisez des clés aléatoires au lieu d'IDs pour reconnaître les utilisateurs connectés, d'abord, vous ne laissez pas vos données primaires au hasard utilisateurs, et deuxièmement, si vous considérez la clé aléatoire assez grande, il sera plus difficile pour quiconque de deviner une clé ou d'en créer une au hasard. par exemple, vous pouvez enregistrer une clé de 40 longueurs comme celle-ci dans le navigateur de L'utilisateur: "KUYTYRFU7987gJHFJ543JHBJHCF5645Uytuyjh54657jguthfn" et il sera moins probable pour quiconque de créer la clé exacte et faire semblant d'être quelqu'un d'autre.

15
répondu Makan Tayebi 2015-06-04 11:18:15

en fait, la session et les cookies ne sont pas toujours des choses distinctes. Souvent, mais pas toujours, session utilise des cookies.

Il y a quelques bonnes réponses à votre question dans ces autres questions ici. Puisque votre question porte spécifiquement sur la sauvegarde de L'IDU (ou ID) de l'Utilisateur, Je ne pense pas qu'il s'agisse d'une réplique de ces autres questions, mais leurs réponses devraient vous aider.

cookies vs session

Cache VS Session VS cookies?

Quelle est la différence entre une Session et un Cookie?

10
répondu DOK 2017-05-23 12:34:30

j'utilise personnellement les cookies et la session.

Cookies utilisés uniquement lorsque l'utilisateur clique sur " se souvenir de moi " case à cocher. et aussi les cookies sont crypté et données seulement décrypter sur le serveur. Si quelqu'un essaie d'éditer des cookies notre décrypteur capable de le détecter et de refuser la demande.

j'ai vu tellement de sites où les informations de connexion sont stockées dans les cookies , n'importe qui peut simplement changer l'identification de l'utilisateur et le nom d'utilisateur dans les cookies à accéder à n'importe quel compte.

Merci,

4
répondu Muhammad Sanaullah 2017-10-04 07:53:34
Les Sessions

vous permettent de stocker des informations individuelles tout comme les cookies, mais les données sont stockées sur le serveur au lieu du client.

1
répondu Fahad Uddin 2013-01-15 18:10:48

Session et Cookie ne sont pas identiques.

une session est utilisée pour stocker l'information des pages web. Normalement, les pages web n'ont pas de mémoire pour stocker ces informations. Mais en utilisant Nous pouvons sauver l'information nécessaire.

mais le Cookie est utilisé pour identifier les utilisateurs. En utilisant cookie nous pouvons stocker les données. Il s'agit d'une petite partie des données qui seront stockées dans le navigateur Web de l'utilisateur. Donc chaque fois que l'utilisateur parcourt la prochaine fois que le navigateur renvoie le cookie informations sur les données au serveur pour obtenir les activités précédentes.

crédits: Session et Cookie

1
répondu user3824494 2014-10-20 14:21:58

comme d'autres l'ont dit, les Sessions sont intelligentes et ont plus d'avantages à cacher l'information au client.

mais Cookie a toujours au moins un avantage , vous pouvez accéder à vos Cookies à partir de Javascript(par exemple ngCookies ). Avec la session PHP, vous ne pouvez pas y accéder n'importe où en dehors du script PHP.

0
répondu Kamalakannan J 2016-08-19 02:57:10

je vais sélectionner Session, tout d'abord la session est plus sûre que les cookies, les cookies sont des données du site client et la session est des données du Site serveur. Les Cookies sont utilisés pour identifier un utilisateur, parce que ce sont de petits morceaux de code qui est intégré à mon serveur avec le navigateur de l'ordinateur de l'utilisateur. D'un autre côté, Session vous aide à sécuriser votre identité parce que le serveur web ne sait pas qui vous êtes parce que L'adresse HTTP change l'état 192.168.0.1 à 765487cf34ert8ded.....ou quelque chose d'autre numéros avec l'aide de GET and POST methods. Session stocke les données de l'utilisateur dans la session D'ID unique que même l'ID de l'utilisateur ne peut pas correspondre avec l'autre. Session stocke les informations d'un seul utilisateur dans toutes les pages d'une application. Les Cookies expirent est paramétré avec l'aide de setcookies () alors que la session expire n'est pas paramétrée, elle expire lorsque l'utilisateur éteint les navigateurs.

0
répondu Wasiq Mahmood WM 2017-02-15 11:39:50