PHP et sql injection - PHP - Programmation
Marsh Posté le 31-08-2016 à 14:57:47
Oui ce n'est pas suffisant, j'opterais aussi pour un intval dans ce cas précis. sinon les bibliothèque de nettoyage c'est aussi très bien. Mais de manière générale en sécurité il n'y a pas mieux que de savoir exactement ce que tu attends en entrée et les renseignements que tu donne en sortie
Marsh Posté le 31-08-2016 à 20:24:17
quand il s'agit d'un entier, c'est effectivement facile... c'est surtout pour les chaîne de caractère qu'il faut être vigilant et à ma connaissance, le mieux c'est le PDO...
Marsh Posté le 06-09-2016 à 17:25:47
zezette a écrit : Bonsoir à tous, |
Avertissement : j'y connais rien au PHP.
Il ne manquerait pas les "quotes" autour de $parametre ?
Code :
|
Sinon je fais http://www.monsite.com/page.php?pa [...] ABLE+table et ça injecte.
Marsh Posté le 06-09-2016 à 17:55:44
Pas obligatoire quand la variable est entre double quotes
Marsh Posté le 06-09-2016 à 19:04:33
antac a écrit : quand il s'agit d'un entier, c'est effectivement facile... c'est surtout pour les chaîne de caractère qu'il faut être vigilant et à ma connaissance, le mieux c'est le PDO... |
En même temps, mise à part pour des messages, tu t'attends en général à du ^[a-Z0-9]{1,12}$, ce n'est probablement pas conseillé niveau perf mais un regex peut faire l'affaire. Et dans des cas plus spéciaux (coordonnées, adresse mail, numéro de tel, etc.) il est tout aussi facile de trouver un regex qui fera le taf.
Mais bon, comme dit, pourquoi s'emmerder quand on peut utiliser PDO.
Marsh Posté le 30-08-2016 à 22:31:59
Bonsoir à tous,
J'ai une page PHP à la quelle je passe un paramètre à l'url. Je récupère ce paramètre pour une requête sql
http://www.monsite.com/page.php?parametre=5
<?php
//J'ai pensé à protéger mon paramètre en faisant
$parametre=mysql_real_escape_string($_GET['parametre']);
//Puis je fais ma requete
$sql="SELECT * FROM table where id=$parametre;";
//(...)
?>
Mais il semble que mysql_real_escape_string ne soit pas suffisant pour protéger des "sql injection" (on m'a fait la démo avec sqlmap ; le mec arrivait à lister (parce qu'il est sympa) tout le contenu de mes bases de données :|).
Que pourrais-je faire de plus pour éviter ça ?
Merci
---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes