Vous n'êtes pas identifié(e).
Bonjour à tous,
voila mon soucis, une gentille personne s'est introduite sur mon site et ma envoyé des infos sur ma bdd par mail. J'ai de la chance, je reconnais
Il m'a simplement mis en évidence le fait de rajouter une ' à la fin de mon URL faisais afficher le début d'info :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/d4d44zfg4389684/web/
En cherchant , j'ai trouvé ça, mais mes connaissances étant très limité, je prefere demander si ça pourrait résoudre mon probleme de faille :
Voici ma page :
<?php
// connexion
$id = $_GET["id"];
mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_selectdb($dbname);
$result=mysql_query("SELECT * FROM ma table WHERE id='$id'");//affichage
if ($row=mysql_fetch_array($result)) {
echo "<input type=hidden name=\"id\" value=$id>\n";//fin de test
} else {
echo "Désolé, mais raté";
} mysql_close();
?>
Je vais corriger les *
Dernière modification par theavengers (09-03-2011 16:03:12)
Hors ligne
Pour ton premier code il ne faut pas utiliser la variable $_GET mais la comparer à une liste de valeurs en dur dans ton code.
Pour ton second problème tu ne vérifies aucunement ce que tu récupères.... Même problème donc.
Pour toute valeur insérée dans une base de donnée il faut la protéger : mysql_real_escape_string()
Hors ligne
Merci pour le 1er code, je viens de voir que c'était pour les includes Mais merci pour ton code, il me servira tôt ou tard.
Depuis hier, je n'arrête pas de surfer sur les failles PHP et je prends peur ...
Effectivement j'ai vu que mysql_real_escape_string() était le minimum ...
J'en ai profiter pour changer ce bout :
$_GET['id'] = addslashes ($_GET['id']);
Hors ligne
Est que c'est bon comme ça ?
$_GET['id'] = addslashes ($_GET['id']);
mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_selectdb($dbname);
$result=mysql_query("SELECT * FROM matable WHERE id='".$_GET['id']."' ");
mysql_real_escape_string($id);
Je viens de tester, ça à l'air bon mais je préfère avoir une confirmation...
Dernière modification par theavengers (10-03-2011 09:58:36)
Hors ligne