Pages: 1
Lorsque vous développez une application web comprenant un espace membre, il est important de contrôler qui fait quoi sur l?application. En effet, globalement sur un site web, lorsqu?un membre doit éditer une de ses fiches, ou un de ses produits, l?url ressemble à page.php?edit=x (x correspondant à un id).
Vous êtes vous déjà demandé ce qu?il se passerait si un de vos utilisateurs choisissait de changer le numéro fourni dans votre url (page.php?edit=5) par un autre ? (page.php?edit=15)
Une solution facile et simple vous est proposée ici :
http://blog.himselfprod.com/pensez-a-co … 2009/01/07
Si vous appréciez & utilisez cette technique, n'hésitez pas à faire des liens !
Chears
Hors ligne
![]()
Mort de rire ton code de goret... Tu présentes là la plus mauvaise façon de procéder, franchement c'est du php niveau -12.
Tu cumules tout et en plus tu oses publier.
Une faille d'include potentielle, une porte ouverte aux injections sql, requête dangereuse et non sécurisée, une autre aux XSS (traitement du $_Get non sécurisé) et enfin utilisation hasardeuse des sessions.
Bravo tu as gagné le Goret d'or.
Penches toi sur ce que l'on appel les acl (access control list) et les class d'authentification solides et sécurisées les librairies PHP sur ce sujet ne manquent pas sur le net.
Bref vive les blogeurs qui se la pètent et qui croient aider les autres, qui veulent vendre des connaissances et qui n'ont même pas un échantillon sur eux.
Sinon à part ça tout va bien, il neige à Aix.
Dernière modification par rikaix (07/01/2009 19:00:57)
Hors ligne
On est d'accord pour le htmlentities,
Je l'ai omis dans l'exemple, mais rassures toi il est bien dans mon code.
Plus tôt que de critiquer...
Pourquoi tu proposes pas un meilleur code ?
Hein ?
function j_ai_besoin() {
if (exist) use it;
if (exist & could be better) upgrade & share;
if (don't exist) develop & share;
if (request) exit;
Return "upgraded function" or "happy developper" or die;
}Hors ligne
non désolé je ne publie pas et ne partage pas non plus.
Mais j'ai donné des pistes de recherche pour améliorer, mince j'aurais pas dû.
Haro ! Sur le baudet.
En fait la critique peut faire avancer sans obligatoirement proposer de solution.
Tu proposes un code, il a des faiblesses, je le fais remarquer, ensuite il peut rester tel qu'il est, ce n'est point mon soucis.
Mon souci actuel est de déblayer la neige devant chez moi, aider les automobilistes à pousser leur voiture, croiser les doigts pour avoir suffisamment d'électricité pour continuer à troller sur ce post.
Hors ligne
Bah déjà,
Commence par me montrer comment avec une ACL tu iras verifier que le membre X à bien le droit d'editer le site Y (qui lui appartiens.)
Parceque même avec les meilleurs documentations du monde, tu n'iras nulle part.
Dans tout ce que tu dis, à part le htmlentities manquant... Je ne vois rien d'autre à modifier.
Hors ligne
Ah, zut !
J'ai loupé ce Troll...
Bon, il va falloir que je relise tout.
Mais pas ce soir, je suis fatigué. Promis, demain je sévis !
Alain AKA Arma
PS : @ HimSelf --> C'est quoi cette fonction de blaireau ? ![]()
PPS : pitting ! J'ai laissé tomber mon blaireau dans les lentilles ! (Carmen - Bizet ?) ![]()
Hors ligne
Je n'ai pas tout lu, c'était beaucoup trop long et totalement inepte !
De toute façon, moi, je suis "out of control"...
...
![]()
AHOHNM
PS : ICI, on a le droit de mélanger le "Flood" avec le "Troll".
Enfin, je dis cela parce que je trouve ça marrant. ![]()
PPS :Ca sert à quoi htmlentities() ? ![]()
Hors ligne
Moi même je ne me relis plus depuis un moment déjà,
Quoique à la réflexion en plus du htmlentities, il doit être possible de procurer une carte type CB avec une puce à l'intérieur qui pourrait octroyer des droits au membre unique pour accèder à son site, mais cela demanderais de la part du webmaster de fournir un lecteur de CB en plus de son script, mais bon comme maintenant c'est du plug and play ce doit être possible, c'est ce qui me semble le plus sûr en tous cas ![]()
[Vous devez être identifié pour voir le texte caché.]
Hors ligne
Salut,
Je ne me suis jamais penché sur cette problématique mais je dirai : pourquoi tout simplement ne pas attribuer un numéro de session à l'utilisateur lors d'une authentification sur login et mot de passe, l'enregistrer dans la table relative à cet user puis comparer non pas l'user_id mais le numéro de session qui lui est attribué ?
Par exemple le billet 18 est attribué à l'user 15
L'user 15 se connecte et se voit attribuer une valeur de session qui est enregistrée dans la base user
Par la suite pour modifier un billet le code devra vérifier a qui est attribuée la valeur de la session et que ce user est bien celui qui a créé le billet.
Soit un truc comme ça (je passe volontairement sur les protections contre les injections au stade de l'authentification puis à celui de l'affichage du billet et enfin de son enregistrement)
SELECT * FROM websites as s, user as t WHERE s.id=$_GET['id_billet'] AND t.id_session=$_SESSION['valeur'] AND t.user_id=s.id_auteur
Hors ligne
Pages: 1
|
© 2006-2012 / A. G.☺ CiGi€M@®, 1997-2012 |
|
Reproduction totale ou partielle strictement interdite Contact : / |