Re: Module Hacker par SQL Injections plus accessible | Titre du sujet : Re: Module Hacker par SQL Injections plus accessible par montuy337513 sur 24/01/2015 13:00:55
mysql_real_escape_string et mysqli_real_escape_string sont obsolètes (sans compter des failles de sécurité dans mysql_real_escape_string Utilise plutôt filter_input comme ci-dessous :
<?PHP
include 'header.php';
$nom = (isset($_GET['nom'])) ? filter_input(INPUT_GET,'nom',FILTER_SANITIZE_STRING) : '';
$year = (isset($_GET['year'])) ? filter_input(INPUT_GET,'year',FILTER_SANITIZE_NUMBER_INT) : 0;
$req = ($year > 0) ? ' AND `year`='.$year : '';
$sql = "SELECT * FROM `prefix_xoops_test` WHERE `title` = '".$nom."' ".$req." ORDER BY `prefix_xoops_test` .`title` ASC";
$result = $xoopsDB -> query($sql);
include(XOOPS_ROOT_PATH."/header.php");
While (list($lid, $cid, $title, $year) = $xoopsDB->fetchRow($result)) {
PS : ta requête sql devrai se présenter comme ci-dessus. C'est à dire qu'il faut être sûr des variables qu'on injecte. Et Supprimer tout ce qui n'est pas utile, si pas d'année précisée, on ne met pas dans la requête une recherche dessus. Par contre si le champs année est obligatoire alors il faut bloquer l'exécution avant la requête (histoire de ne pas avoir de sollicitation de la BDD pour rien).
|
|