2010-05-28 4 views
0

D'accord, je ne reçois pas de réponse avec mon wordness verbeux originale ...PHP, Nous avons des sessions et les cookies .... J'aime les cookies, mais ils soufflent mon esprit en ce moment

Pouvez-vous exécuter script avant de mettre des cookies, ou doit-il être la première absolue?

Pouvez-vous définir des cookies, et est-il pratique, avec $ _POST ou _GET

$ sinon pratique ... ou sécurisé ... Que puis-je faire pour que mes biscuits sont fixés en toute sécurité (au moins plus sûr que la méthode que j'essaie) sans utiliser SSL

J'apprécie l'aide.

Matt

Répondre

5

les cookies réglage ne doit pas être le début du script - il doit juste se produire avant de vous la sortie du code HTML (ou en-têtes HTTP comme une redirection).

Oui, il est très pratique de lire et de configurer les cookies avec $ _POST et $ _GET. Vous définissez des cookies avec la fonction setcookie en PHP, et les lisez depuis $ _COOKIE.

En termes de sécurité, il suffit de penser à certaines choses. Par exemple, l'utilisateur peut voir et modifier ce qui est contenu dans les cookies. N'importe qui en amont sur le réseau pourrait potentiellement faire la même chose. La clé est de ne pas stocker les données dans le cookie censé être "sécurisé".

+0

Vous devez également crypter le cookie. – Keyo

+0

Donc, je devrais mettre en place une "clé" générée aléatoirement à utiliser avec le compte afin d'établir la connexion avec le compte ... une clé qui serait réaffectée chaque fois que l'utilisateur charge une page ... ce qui semblerait être le manière la plus sûre. – Matt

+0

Je vous recommande d'accepter une réponse à cette question (de base comment fonctionnent les cookies) et si vous avez des questions spécifiques sur la meilleure façon de mettre en place un système de connexion avec des cookies, posez une nouvelle question pour cela. – philfreo

0

Utilisez un outil comme Firebug dans Firefox et examinez l'onglet Net, puis développez la section des détails de chaque requête pour consulter les en-têtes de demande et de réponse. Cela devrait vous aider à mieux maîtriser le sujet.

Les cookies sont simplement des valeurs de texte arbitraires envoyées dans l'en-tête de réponse avant l'envoi du site Web. Ils indiquent au navigateur de les enregistrer quelque part et de les renvoyer au domaine d'origine dans l'en-tête de la requête pour chaque requête suivante. Cela signifie qu'ils peuvent être envoyés avec n'importe quel en-tête de réponse. POST est un type de requête et n'a donc rien à voir avec la définition de cookies. Le navigateur peut envoyer des cookies au serveur avec une requête POST.

Vous pouvez exécuter n'importe quel script avant de configurer les cookies. Mais, puisque les cookies doivent être envoyés dans l'en-tête, vous ne pouvez pas les envoyer après que vous avez commencé à sortir la page Web.

Il n'y a qu'une seule façon de définir des cookies dans l'en-tête de réponse. Le seul sécurisé pour définir un cookie consiste à l'envoyer avec le drapeau secure sur SSL, ce qui signifie seulement que le cookie ne doit pas être renvoyé au serveur via des connexions non-SSL. C'est tout. Par conséquent, réfléchissez bien aux informations à mettre dans les cookies.

Des sessions peuvent résoudre ce problème. Une session envoie simplement un jeton sans signification en tant que cookie et l'utilise pour récupérer les données stockées sur le serveur.