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
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
A voir également:

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
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.
0
c'est ce que j'ai pu sentir mm si je suis pas expert en php en voyant qu'on peut changer les valeurs de cookies avec des navigateurs le resultat au niveau securite sera terrible.
je vous remercie pour le conseil.

crdlt, john travolta
0
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
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.
0
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,
0
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
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é.
0
à part quelques fonctions qui rapportent quelque données non rien d'allégé.

je vais refaire mon code en passant par les sessions ce sera mieux.

merci bcp avion-f16 et neliel.
0
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
Donc, avec ton code, il suffit de mettre l'identifiant de qui on veut pour se connecter à son compte ?
0
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.
0
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
Les sessions s'utilisent de cette manière:

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 ^^
0
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
"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é ...
0
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
Merci pour l'info
0