Question

On m'a dit dans une question précédente que ma requête était sujet à Injections SQL.

get_stats = mysql_query("SELECT * 
                               FROM visitors 
                              WHERE site='

On m'a dit dans une question précédente que ma requête était sujet à Injections SQL.

<*>

Quelle serait la façon la plus simple d’aborder ce problème? Et avez-vous des lectures supplémentaires sur le sujet des injections? (quelque chose que je pourrais manquer sur Google). Merci!

GET[site]' AND date BETWEEN '$start_date' AND '$end_date' ");

Quelle serait la façon la plus simple d’aborder ce problème? Et avez-vous des lectures supplémentaires sur le sujet des injections? (quelque chose que je pourrais manquer sur Google). Merci!

Était-ce utile?

La solution

Utilisez les déclarations préparées .

Dans la plupart des cas, les instructions préparées combinent votre requête avec vos paramètres de manière sécurisée.

Autres conseils

$ _GET ['site'] est une valeur qui provient directement de l'URL du navigateur, ce qui signifie qu'un utilisateur peut facilement changer cette valeur en tout ce qu'il veut. Vous devez donc vérifier / désinfecter cette valeur, toutes les valeurs avant de l'envoyer. à une base de données.

Quelque chose comme ce serait un début, pourrait encore utiliser plus de travail et il y a beaucoup de façons de le faire, je créerais une fonction / classe personnalisée pour passer facilement toutes les variables à travers le site, ce qui peut simplement être répétitif comme ceci

$site = mysql_real_escape_string(

$ _GET ['site'] est une valeur qui provient directement de l'URL du navigateur, ce qui signifie qu'un utilisateur peut facilement changer cette valeur en tout ce qu'il veut. Vous devez donc vérifier / désinfecter cette valeur, toutes les valeurs avant de l'envoyer. à une base de données.

Quelque chose comme ce serait un début, pourrait encore utiliser plus de travail et il y a beaucoup de façons de le faire, je créerais une fonction / classe personnalisée pour passer facilement toutes les variables à travers le site, ce qui peut simplement être répétitif comme ceci

<*>GET['site']); $start_date = mysql_real_escape_string($start_date); $end_date = mysql_real_escape_string($end_date); get_stats = mysql_query("SELECT * FROM visitors WHERE site='$site' AND date >= '$start_date' AND date <= '$end_date' ");

mysql_real_escape_string est le plus basique et la forme la plus simple de sécurité ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top