Requêtes avec paramètres

Dans la majorité des cas, les requêtes sont accompagnées de paramètres pour affiner une recherche, mettre à jour une ligne précise, etc. Ces paramètres proviennent la plupart du temps d’utilisateurs, malveillants ou non. Ces entrées de données peuvent compromettre la base de données, avec des injections SQL par exemple. PHQL dispose de différents moyens pour sécuriser ces fameuses requêtes.

1. Empêchement de l’intégration d’un paramètre sans contrôle

Par défaut, PHQL ne bloque pas l’ajout de données directement dans une requête SQL.

Exemple d’une requête dangereuse

$sMotDePasseUtilisateur = "' OR 1=1"; 
$sPhSql = "SELECT * FROM HelloWorld\Models\Utilisateurs WHERE  
email='test@test.com' and  
mot_de_passe='".$sMotDePasseUtilisateur; 
 
$aResultat = $this->modelsManager->executeQuery($sPhSql); 

Dans ce cas, PHQL exécute la requête sans problème et ramène potentiellement une ligne. C’est au développeur de faire attention à sa manière d’interroger une base de données.

Pour éviter ce genre de désagrément ou d’oubli de la part de développeurs, il suffit de modifier le service de base de données.

Pour cela, il faut se rendre dans le fichier...

couv_EPPHALC.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Récupération de données
Suivant
Mise en cache des requêtes PHQL