par
ghalaad » 06 mars 2007, 06:47
oh le beau code dangereux ...
Et si je mets dans la barre d'adresse :
Code : Tout sélectionner
&ss_cat=%27 UNION SELECT user,password as TELEPHONE FROM MYSQL.USER
(en supposant que j'ai pris "TELEPHONE" comme critère de tri)
*hem*
Du coup :
HTTP_GET_VARS est obsolète. Utilise $_GET à la place voire ignore le et fais tes forms en method=post. (utilisation de $_POST dans ce cas)
sinon, oui, ta syntaxe est ... fausse.
Au lieu de :
$query2 = "SELECT * FROM $table_logiciels WHERE id_ss_cat = '$HTTP_GET_VARS[ss_cat]' ORDER BY '$tri' $sens LIMIT $debut,$nb";
avec :
$link = mysql_connect(...)
mets :
$ss_cat = mysql_real_escape_string($_GET['ss_cat'],$link);
$table_logiciels = mysql_real_escape_string($table_logiciels,$link);
$tri = mysql_real_escape_string($tri,$link);
$debut = (double)mysql_real_escape_string($debut,$link);
$nb = (double)mysql_real_escape_string($nb,$link);
$sens = (strtoupper($sens)=="ASC"?"ASC":(strtoupper($sens)=="DESC"?"DESC":"")); // ASC ou DESC sinon rien.
$req = "SELECT * FROM ".$table_logiciels." WHERE id_ss_cat='".$ss_cat."' ORDER BY ".$tri." ".$sens." LIMIT ".$debut.",".$nb;
oh le beau code dangereux ...
Et si je mets dans la barre d'adresse :
[code]&ss_cat=%27 UNION SELECT user,password as TELEPHONE FROM MYSQL.USER[/code]
(en supposant que j'ai pris "TELEPHONE" comme critère de tri)
*hem*
Du coup :
HTTP_GET_VARS est obsolète. Utilise $_GET à la place voire ignore le et fais tes forms en method=post. (utilisation de $_POST dans ce cas)
sinon, oui, ta syntaxe est ... fausse.
Au lieu de :
[php]$query2 = "SELECT * FROM $table_logiciels WHERE id_ss_cat = '$HTTP_GET_VARS[ss_cat]' ORDER BY '$tri' $sens LIMIT $debut,$nb"; [/php]
avec :
[php]
$link = mysql_connect(...)
[/php]
mets :
[php]$ss_cat = mysql_real_escape_string($_GET['ss_cat'],$link);
$table_logiciels = mysql_real_escape_string($table_logiciels,$link);
$tri = mysql_real_escape_string($tri,$link);
$debut = (double)mysql_real_escape_string($debut,$link);
$nb = (double)mysql_real_escape_string($nb,$link);
$sens = (strtoupper($sens)=="ASC"?"ASC":(strtoupper($sens)=="DESC"?"DESC":"")); // ASC ou DESC sinon rien.
$req = "SELECT * FROM ".$table_logiciels." WHERE id_ss_cat='".$ss_cat."' ORDER BY ".$tri." ".$sens." LIMIT ".$debut.",".$nb;[/php]