Cookies php
travolta
-
Neliel Messages postés 6146 Date d'inscription Statut Contributeur Dernière intervention -
Neliel Messages postés 6146 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
est ce qu'il est securisé d'utilisé les cookies a partir de valeur saisi par les users directement.
ex: avoir un cookies avec la valeur prise du post ou get genre
$_COOKIE['user']='sarko'
merci d'avance
est ce qu'il est securisé d'utilisé les cookies a partir de valeur saisi par les users directement.
ex: avoir un cookies avec la valeur prise du post ou get genre
$_COOKIE['user']='sarko'
merci d'avance
A voir également:
- Cookies php
- Supprimer les cookies - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- La cause de ce problème peut être la désactivation ou le refus des cookies. ✓ - Forum PHP
- Cookies manager - Télécharger - Confidentialité
3 réponses
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.
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,
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é.
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.
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 ^^
"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é ...
je vous remercie pour le conseil.
crdlt, john travolta