|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité(e)
Messages : n/a ![]() |
Bonjour,
Cette question concerne le développement web en général mais je la pose ici car mon domaine c'est le PHP et je cherche une solution PHP. Voici le cas: Dans les formulaires des panneaux d'administration de sites web, pour la modification et suppression d'un enregistrement de données (le compte d'un utilisateur, les commandes, etc), il nous faut en général l'ID de l'enregistrer à modifier ou à supprimer. Or souvent, l'accès aux panneaux est soumis à des privilèges du genre: consultation seulement ou on n'a le droit de modifier que certains enregistrements ou ... Avant que le code PHP sache de quel enregistrement modifier après la soumission d'un POST, il y a souvent un <input type="hidden" value="XXX" /> pour contenir l'ID de l'enregistrement. C'est dangereux car il suffirait de changer value par hasard et l'enregistrement correspond est détruit! Souvent aussi l'URL de suppression est facile à deviner du genre delete.php?user_id=XXXX, donc il suffit de faire appel et changer user_id! Comment les grands sites comme facebook font pour éviter que je modifie le profil d'un autre utilisateur par exemple? |
00
|
|
|
#2 |
|
Membre régulier
![]() |
Pour le compte de Facebook je ne sais pas, mais il fut un temps où je devais faire un truc pareil...
On faisait une validation de hash: on attribut un hash-code à chaque session ou ou un ID dont on recalcule après |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() David B.Développeur informatique Inscription : avril 2003 Messages : 742 ![]() |
Salut,
Ce que je fais généralement sur chaque projet avec un cas similaire. Je vérifie les droits sur chaque page. Par exemple pour la suppression d'un utilisateur, je vérifie les points suivants :
Si l'utilisateur peut supprimer certaines données (par exemple ses objets en vente). Je vérifie que l'objet appartient bien à l'utilisateur ( ou qu'il soit admin ) pour le supprimer. Ça c'est pour une gestion simplifiée. Sinon pour gérer plusieurs profils et gérer l'accès à une page par rapport au profil de l'utilisateur.
__________________
Tout énigme a une solution ! Tout est question de discipline ! |
|
|
00
|
|
|
#4 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
Il faut implémenter une gestion de droits: un utilisateur n'a le droit de modifier que les données qui le concerne. C'est relativement simple à mettre en place avec un SGBD relationnel vu que, logiquement, toutes les informations de l'utilisateur sont liées avec l'utilisateur en question.
Pour une gestion plus poussée des droits, utilise une logique d'ACL: http://en.wikipedia.org/wiki/Access_control_list
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com