[RESOLU] Reqûete préparée avec PDO

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Reqûete préparée avec PDO

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

par mgrimal » 10 oct. 2022, 17:23

merci beaucoup ! je verrai si quelqu'un le déconseille. En attendant je reste comme ça

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

par @rthur » 10 oct. 2022, 17:19

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.

Reqûete préparée avec PDO

par mgrimal » 10 oct. 2022, 17:03

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 ?