Article du jour

connect_errno) { die("Échec de la connexion - Veuillez réessayer plus tard : " . $mysqli->connect_error()); //affiche l'erreur } $mysqli->set_charset("utf8"); $rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id=" . $_GET['id'] . " LIMIT 1"); //ATTENTION: pas d'échappement dans la requête SQL (Injection SQL) //exemple de correction avec les guillemets simples: $rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id='" . $mysqli->real_escape_string($_GET['id']) ."' LIMIT 1"); //exemple de correction sans les guillemets simples mais avec la suppression de tout caractère différent d'un nombre : $rowsarticles=$mysqli->query("SELECT * FROM `articles` WHERE id=" . preg_replace("/[^0-9]/", "", $_GET['id']) . " LIMIT 1"); if ($rowsarticles->num_rows==0) { echo "Aucun article à afficher."; } else if($row = $rowsarticles->fetch_array()) { ?> " . $row['titre'] . ""; //ATTENTION: pas d'échappement de caractères (XSS stocké) echo $row['contenu']; //ATTENTION: pas d'échappement de caractères (XSS stocké) //exemple de correction : echo htmlentities($row['contenu']); et echo "

" . htmlentities($row['titre']) . "

"; ?>

Commentaires

real_escape_string() autour de $_GET['id'], $_POST['pseudo'] et $_POST['commentaire'] //autre exemple de correction, en utilisant preg_replace et en enlevant les guillemets simples autour de $_GET['id'] comme vu ci-dessous $mysqli->query($queryinsert); } $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle=" . $_GET['id']);//ATTENTION: pas d'échappement dans la requête SQL //exemple de correction avec les guillemets simples : $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle='" . $mysqli->real_escape_string($_GET['id']) . "'"); //exemple de correction sans les guillemets simples mais avec la suppression de tout caractère différent d'un nombre : $rowscommentaires=$mysqli->query("SELECT * FROM `commentaires` WHERE idarticle=" . preg_replace("/[^0-9]/", "", $_GET['id'])); if ($rowscommentaires->num_rows==0) { echo "Aucun commentaire"; } else { while($row = $rowscommentaires->fetch_array()) { echo $row['pseudo'] . " dit :
"; //ATTENTION: pas d'échappement de caractères (XSS stocké) echo "   " . $row['commentaire'];//ATTENTION: pas d'échappement de caractères (XSS stocké) //exemple de correction : echo htmlentities($row['pseudo']); et echo htmlentities($row['commentaire']); echo "

"; } } ?>