Cookies php
Fermé
travolta
-
27 avril 2011 à 15:23
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 - 28 avril 2011 à 17:12
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 - 28 avril 2011 à 17:12
A voir également:
- Cookies php
- Supprimer les cookies - Guide
- Easy php - Télécharger - Divers Web & Internet
- Php natif - Forum PHP
- Extension refuser cookies - Guide
- Bouton php - Forum PHP
3 réponses
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
27 avril 2011 à 15:25
27 avril 2011 à 15:25
Bonjour,
Les Cookies ne sont pas une méthode très sécurisé... surtout si on y stocke des informations d'identification.
Il est préférable d'utiliser les Sessions pour ce genre de chose.
Les Cookies ne sont pas une méthode très sécurisé... surtout si on y stocke des informations d'identification.
Il est préférable d'utiliser les Sessions pour ce genre de chose.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
27 avril 2011 à 16:23
27 avril 2011 à 16:23
Salut,
Pour donner une valeur à un cookie, mêmes s'il existe déjà, on utilise setcookie(), pas $_COOKIE['...'] = '...'
Dans ton cas, il faut effectivement utiliser les sessions en PHP.
Mais ce n'est pas pour autant que les cookies c'est mal : tu peux les utiliser pour stocker des informations qui n'ont rien à voir avec la sécurité (thème choisi, langue, email/login pour pré-remplir le form. de connexion, etc).
Pour info, les sessions PHP utilisent les cookies : une chaine unique est stockée en cookie. Lorsque le navigateur charge une page, il transfert cette chaine (comme tous les autres cookies) au serveur. Ensuite, grâce à cette chaine, PHP peut récupérer les données de la session stockée sur le disque du serveur.
Pour donner une valeur à un cookie, mêmes s'il existe déjà, on utilise setcookie(), pas $_COOKIE['...'] = '...'
Dans ton cas, il faut effectivement utiliser les sessions en PHP.
Mais ce n'est pas pour autant que les cookies c'est mal : tu peux les utiliser pour stocker des informations qui n'ont rien à voir avec la sécurité (thème choisi, langue, email/login pour pré-remplir le form. de connexion, etc).
Pour info, les sessions PHP utilisent les cookies : une chaine unique est stockée en cookie. Lorsque le navigateur charge une page, il transfert cette chaine (comme tous les autres cookies) au serveur. Ensuite, grâce à cette chaine, PHP peut récupérer les données de la session stockée sur le disque du serveur.
salut
" $_COOKIE['...'] = '...' " je m'excuse d'avoir mal exposer l'idée je voulais dire est-ce fiable d'avoir 'sarko' comme valeur dans un cookie.
je stocke un cookie nomé user et ensuit je m'en sert pour modifer des donnée le statu de ce user peut etre un simple user ou bien admin de l'application alors si un simple user se connecte à l'application pour modifier les donnée comme un admin il suffit d'aller et ajouter le pseudo d'un admin comme nouvelle valeur de ce cookie pour faire.
alors est ce qu'il faut pas cripter cette valeur avant de l'ajouter dans un cookie.
ex:
if(isset($_POST['user']))
{
$user=md5($_POST['user']);
set_cookie("user",$user,time()+60*60,"/");
}
ou bien suffit de faire :
if(isset($_POST['user']))
{
set_cookie("user",$_POST['user'],time()+60*60,"/");
}
crdlt,
" $_COOKIE['...'] = '...' " je m'excuse d'avoir mal exposer l'idée je voulais dire est-ce fiable d'avoir 'sarko' comme valeur dans un cookie.
je stocke un cookie nomé user et ensuit je m'en sert pour modifer des donnée le statu de ce user peut etre un simple user ou bien admin de l'application alors si un simple user se connecte à l'application pour modifier les donnée comme un admin il suffit d'aller et ajouter le pseudo d'un admin comme nouvelle valeur de ce cookie pour faire.
alors est ce qu'il faut pas cripter cette valeur avant de l'ajouter dans un cookie.
ex:
if(isset($_POST['user']))
{
$user=md5($_POST['user']);
set_cookie("user",$user,time()+60*60,"/");
}
ou bien suffit de faire :
if(isset($_POST['user']))
{
set_cookie("user",$_POST['user'],time()+60*60,"/");
}
crdlt,
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
27 avril 2011 à 17:39
27 avril 2011 à 17:39
MD5 est un algorithme pour hasher, pas pour crypter.
Utiliser le MD5 ne sera pas plus sécurisé : l'utilisateur aussi peut hasher le nom d'un administrateur et modifier le cookie.
Il faut utiliser les sessions dans ce cas.
As-tu allégé ton code avant de nous le coller ici ?
Si non, ton système me paraît très peu sécurisé.
Utiliser le MD5 ne sera pas plus sécurisé : l'utilisateur aussi peut hasher le nom d'un administrateur et modifier le cookie.
Il faut utiliser les sessions dans ce cas.
As-tu allégé ton code avant de nous le coller ici ?
Si non, ton système me paraît très peu sécurisé.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
27 avril 2011 à 19:40
27 avril 2011 à 19:40
Donc, avec ton code, il suffit de mettre l'identifiant de qui on veut pour se connecter à son compte ?
avec un mot de pass biensur
y a aussi un champ password qui sera verrifié et validé à partir d'une base de données.
mais le probleme c'est le username stocké dans les cookies peut etre changer par exmple avec opera on peut changer les valeurs de ces cookies donc si quelqu'un se connect avec un username=user il peut ensuite aller le changer et mettre username=admin puis gérer l'application en tand qu'admin. puisque le cookie sera lisible tout simplement.
y a aussi un champ password qui sera verrifié et validé à partir d'une base de données.
mais le probleme c'est le username stocké dans les cookies peut etre changer par exmple avec opera on peut changer les valeurs de ces cookies donc si quelqu'un se connect avec un username=user il peut ensuite aller le changer et mettre username=admin puis gérer l'application en tand qu'admin. puisque le cookie sera lisible tout simplement.
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
28 avril 2011 à 09:52
28 avril 2011 à 09:52
Les sessions s'utilisent de cette manière:
Tu dois démarrer les sessions sur chaque page où tu te sers des variables sessions:
Cette instruction doit être impérativement la première de la page... question de norme à respecter. De plus, session_start() doit se situer toujours avant header() (si tu en utilises) sinon ça plante.
L'utilisation des variables de sessions est très simple:
Autrement dit comme n'importe quelle autre variable.
Tu peux utiliser la fonction "unset" pour détruire une variable session:
Pour détruire toutes les variables de session et mettre fin à la session en cours, tu peux utiliser l'instruction:
Voila, je pense avoir fait le tour... si j'ai oublié quelque chose ou si j'ai balancé une connerie, avion-f16 me corrigera, je pense qu'il est plus calé que moi en PHP ^^
Tu dois démarrer les sessions sur chaque page où tu te sers des variables sessions:
session_start();
Cette instruction doit être impérativement la première de la page... question de norme à respecter. De plus, session_start() doit se situer toujours avant header() (si tu en utilises) sinon ça plante.
L'utilisation des variables de sessions est très simple:
$_session['identification']="Paul"; echo $_session['identification']; ...
Autrement dit comme n'importe quelle autre variable.
Tu peux utiliser la fonction "unset" pour détruire une variable session:
unset($_session['identification']);
Pour détruire toutes les variables de session et mettre fin à la session en cours, tu peux utiliser l'instruction:
session_destroy();
Voila, je pense avoir fait le tour... si j'ai oublié quelque chose ou si j'ai balancé une connerie, avion-f16 me corrigera, je pense qu'il est plus calé que moi en PHP ^^
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
28 avril 2011 à 17:01
28 avril 2011 à 17:01
"De plus, session_start() doit se situer toujours avant header()"
Je viens de tester, ça fonctionne avec d'abord header() puis session_start().
Et c'est $_SESSION et pas $_session
À part ça, tout est correct.
Petite information suppl. : Une fois déclarée, la variable de session est accessible via toutes les pages, sans la déclarer dans toutes ses pages.
Donc si tu déclares $_SESSION['username'] dans login.php, la variable sera disponible sur toutes les pages sans déclaration (juste le session_start).
Comme les cookies en résumé ...
Je viens de tester, ça fonctionne avec d'abord header() puis session_start().
Et c'est $_SESSION et pas $_session
À part ça, tout est correct.
Petite information suppl. : Une fois déclarée, la variable de session est accessible via toutes les pages, sans la déclarer dans toutes ses pages.
Donc si tu déclares $_SESSION['username'] dans login.php, la variable sera disponible sur toutes les pages sans déclaration (juste le session_start).
Comme les cookies en résumé ...
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 692
Modifié par Neliel le 28/04/2011 à 17:15
Modifié par Neliel le 28/04/2011 à 17:15
Merci pour l'info
27 avril 2011 à 15:51
je vous remercie pour le conseil.
crdlt, john travolta