[RESOLU] Sécuriser des champs hidden ou text

Eléphant du PHP | 386 Messages

30 août 2014, 09:40

Bonjour,
J'ai un champ de type "hidden", où je passe en valeur l'id d'un article.
Ce champ est utile pour la suppression ou la modification de cet article à la demande du membre connecté selon ses autorisations.
Mais si le membre modifie l'id du champ, c'est l'article qui aura l'id modifié qui sera modifié.

Je pense qu'il y a des conditions à faire dans la page de traitement, mais j'ai tout essayé, ça ne fonctionne pas :(

Merci pour votre aide :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 août 2014, 09:46

Salut,

La sécurisation la dessus c'est de vérifier que l'article appartient bien au membre connecté.
Donc dans le delete un where idarticle=xxx and userid=y y

Normalement l'id utilisateur tu devrais l'avoir en session.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 386 Messages

30 août 2014, 11:04

Oui j'ai deja fait ca
Mais si le membre connecté change lui même l'id d'un article qu'un autre membre a posté, il supprimera cet article alors qu'il en a pas le droit.

J'ai fait des conditions pour que le membre qui poste peut supprimer ou modifier uniquement ses articles a lui.
Par contre il peut signaler les articles "douteux" si c'est pas lui qui les a posté.

Mais dans la source du site on peut toujours voir les id que je passe en valeur dans les champs hidden et les modifier dans le lien pour supprimer les articles qui ne doivent pas être supprimer et qui appartiennent a d'autres membres

Mammouth du PHP | 2278 Messages

30 août 2014, 12:16

Salut,
Donc dans le delete un where idarticle=xxx and userid=y y
@+
Difficile d'etre plus clair; à moins que tu pousses la parano jusqu'à imaginer qu'un utilisateur usurpe l'identité d'un auitre et supprime les articles d'un autre.
Une autre solution , plus lourde, consiste à créer une table des transactions:
demande d'inscription d'article avec id du demandeur
demande motivée de suppression d'article avec id du demandeur
Et que ce soit le webmestre qui effectue les opérations en temps différé
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 386 Messages

30 août 2014, 12:35

Finalement, je vais faire ta première solution ^^

Mammouth du PHP | 2278 Messages

31 août 2014, 13:03

Il existe un bouton RESOLU, si c'est le cas....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 août 2014, 21:37

sinon avec l'id utilisateur pris en session il n'y a pas moyen de supprimer un article qui n'appartient pas l'utilisateur connecté.

la solution de sirakawa est aussi une bonne solution (suppression logique avec un flag en base + trace dans une table).
tu peux ainsi avoir la liste des actions et permettre un retour en arrière au cas ou :)



@+
Il en faut peu pour être heureux ......