Fork me on GitHub

Rapport de message :*
 

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).
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

46 Personne(s) en ligne (37 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 46 | Plus ...