< Fil d'ariane > Blog SEO / Php / Mysql / Blog article: pensez à controller le membre avant édition

| Mobile | RSS

pensez à controller le membre avant édition

Un article de Gregory Janssens Mise en ligne le 7 janvier, 2009   |   Dernière mise à jour : 27 août, 2009 à 3:40 .

Lorsque vous développez une application web comprenant un espace membre, il est important de controller 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 fournis dans votre url ( page.php?edit=5 ) par un autre ? ( page.php?edit=15 )

Et bien fatalement, si aucun contrôle n’est effectué avant d’afficher ou sélectionner les informations de ces fiches, vous vous risquez à plusieurs problèmes. Le premier étant que n’importe qui peux chippoter dans les fiches des autres membres… Les vider, ou les remplir avec des informations factices.

Le second, une personne mal intentionnée, pourrait s’amuser à récolter toute ces informations dans le but de les revendre, ou tout simplement de les réutiliser à son essient.

Bref, il faut toujours penser à sécuriser vos formulaires du mieux que possible, j’ai pensé à cela tout à l’heure alors que je codais justement les fiches d’éditions d’un site web sur mon portail seotosubmit.com. Et que je me disais, tiens, mais si truc change le numéro, à ce moment la il pourra modifier le site de brol.

Solution :

Si vous avez une session pour vos membres, il vous suffit de récuperer l’id du membre actuellement connecté (dans mon cas $user_id) et de le comparer au champ de votre table que vous avez utiliser pour lier les membres à leurs fiches/produits.

ex :

< ?php
  1.  
  2. case edit:
  3. $wsid = $_GET['ws'];
  4. $checkmemberq = db_query("SELECT id_members FROM websites WHERE id='$wsid'");
  5. $checkmember = mysql_fetch_array($checkmemberq);
  6. if($user_id == $checkmember['id_members']) {
  7. $wsq = db_query("SELECT * FROM websites WHERE id='$wsid'");
  8.  
  9. ?>

Dans cet exemple (issu de mon switch) je vérifie simplement comme expliqué plus haut, que le members_id est bien égal à l’id de l’utilisateur enregistré. ( récupérer en sessions, comme ça il à aucun moyen de le changer. )

Ensuite, libre à vous de traiter la donnée ou d’afficher un message d’erreur précis. Dans mon cas, je logg l’opération, je m’envoie un mail avec les infos du ptit malin, & un avertissement lui est attribué.

N’hésitez pas à cumuler ma fonction pour récuperer l’adresse ip d’un visiteur si vous le souhaitez.

Une faute d'orthographe, une erreur à signaler ? Une précision à apporter ? Ecrivez à redaction@himselfprod.com avec votre info ou votre correction en indiquant l'url de l'article.

A propos de l'auteur


Articles en relation :

Follow Discussion

One Response to “pensez à controller le membre avant édition”

Trackbacks

  1. Gregory Janssens 【ツ】  

Leave a Reply