PHP INITIÉ - Se protéger des injections SQL

PHP INITIÉ - Se protéger des injections SQL

Lors de l'interrogation de votre base de données, évitez que les données douteuses rendent votre application vulnérable aux injections SQL et donc peu fiable. Certains programmeurs pensent qu'ils ont résolu le problème en utilisant des magic_quotes dans leur php.ini. Le problème est que les entrées douteuses peuvent provenir de sources autres que $ _GET, $ _POST et $ _COOKIE (provenant d'autres sites ou utilisant des entrées de la base de données). Et que se passe-t'il si soudainement magic_quotes est réglé sur OFF?

PHP INITIÉ - Se protéger des injections SQL

Comment faire pour résoudre ce problème:
Il faut mettre les magic_quotes sur OFF dans le fichier php.ini ou bien utiliser le fichier .htaccess. Ensuite utiliser la fonction mysql_real_escape_string () sur toutes les variables utilisées dans les expressions SQL.

Dans l'exemple ci dessous vous avez la fonction pour les versions PHP4, PHP5 et PHP5, PHP7

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
 
<?php

// PHP 4 et PHP 5+
$requete_sql = " UPDATE table
                SET nom = '"
.mysql_real_escape_string($nom)."'
                WHERE id = "
.mysql_real_escape_string($id)."
              "
;

mysql_query($requete_sql);

?>

<?php

// PHP 5+ et PHP 7+
$requete_sql = " UPDATE table
                SET nom = '"
.$conn->real_escape_string($nom)."'
                WHERE id = "
.$conn->real_escape_string($id)."
              "
;

$conn->query($requete_sql);

?>