Page 1 sur 1

Reqûete préparée avec PDO

Posté : 10 oct. 2022, 17:03
par mgrimal
Bonjour
J'ai un formulaire de recherche sur une page, qui une fois envoyé execute une requête SQL SELECT, préparée grâce à PDO, dans laquelle je passe plusieurs valeurs avec bindValue().
Jusqu'à maintenant, la recherche par chaîne de caractère ne renvoyait rien si on entrait des caractères spéciaux, par exemple "&", alors qu'il y avait bien une entrée en base avec ce caractère. Il se trouve que je recevais le caractère encodé en entité html en le récupèrant via le $_GET['search'] (je n'ai pas écrit le code d'origine, je suppose que c'est à ce moment que le '&' devient l'html_entity &);
Pour parer à ce souci, voici ma solution:

Code : Tout sélectionner

if (isset($filters['app_name']) && strlen($filters['app_name']) > 0) { $app_name = html_entity_decode($filters['app_name']) ; $req->bindValue(':name_app1', '%' . $app_name . '%', \PDO::PARAM_STR); $req->bindValue(':name_app2', '%' . $app_name. '%', \PDO::PARAM_STR); }
Je me demande si c'est sécure de procéder ainsi, qu'en pensez vous ?

Re: Reqûete préparée avec PDO

Posté : 10 oct. 2022, 17:19
par @rthur
Avec une requête préparée, le risque est très minime d'avoir de l'injection SQL, donc oui je pense que ça ne pose pas de problème.

Re: Reqûete préparée avec PDO

Posté : 10 oct. 2022, 17:23
par mgrimal
merci beaucoup ! je verrai si quelqu'un le déconseille. En attendant je reste comme ça