Protection des requetes SQL

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 : Protection des requetes SQL

Re: Protection des requetes SQL

par xTG » 27 nov. 2011, 09:16

Bah je t'ai répondu non ? :shock:
De plus si tu as lu la documentation :
PDO::quote() place des guillemets simples autour d'une chaîne d'entrée, si nécessaire et protège les caractères spéciaux présents dans la chaîne d'entrée, en utilisant le style de protection approprié au pilote courant.

Re: Protection des requetes SQL

par rimie » 27 nov. 2011, 04:51

donc que dois je utiliser pour securiser mes requetes?

Re: Protection des requetes SQL

par moogli » 26 nov. 2011, 22:59

oui j'avais pas fait gaffe aux quote que tu avais mis.

Attention les quote ça dépend de ce que tu utilise comme type pour l’échappement. si tu utilise int il n'en met pas (les entier ne sont pas entouré par des quotes).

@+

Re: Protection des requetes SQL

par xTG » 26 nov. 2011, 17:47

C'est une fonction qui est utilisée aussi pour les requêtes préparées.
Donc en effet elle rajoute des quotes autour des chaînes de caractères.
Et ce à cause de la formalisation des requêtes préparées :
SELECT id, nom
FROM uneTable
WHERE nomCat = ? AND id > ?
On n'y indique aucune quote, et lors de l'ajout des paramètres la fonction les ajoute au besoin suivant le type de donnée.

Re: Protection des requetes SQL

par rimie » 26 nov. 2011, 16:39

vi vi comme ça ;)
elle ajoute une apostrophe sur les entrees, est ce que c'est juste?

et pour les caracteres indesirables, j'utilise la methode normale (strip_tags,...), par exemple empecher les codes html...

Re: Protection des requetes SQL

par moogli » 26 nov. 2011, 14:22

vi vi comme ça ;)

Re: Protection des requetes SQL

par rimie » 26 nov. 2011, 10:25

comme ca:
$level1 = $connexion->quote($level1, PDO::PARAM_INT);
$level2 = $connexion->quote($level2, PDO::PARAM_INT);
$level3 = $connexion->quote($level3, PDO::PARAM_INT);
$num = $connexion->quote($num, PDO::PARAM_INT);
$commentaire = $connexion->quote($commentaire, PDO::PARAM_STR);
$idpseudo = $connexion->quote($idpseudo, PDO::PARAM_INT);
$date_posted = $connexion->quote($date_posted, PDO::PARAM_STR);




$sql = 'INSERT INTO commentaires VALUES (\'\', "'.$level1.'", "'.$level2.'", "'.$level3.'", "'.$num.'", "'.$commentaire.'", "'.$idpseudo.'", "'.$date_posted.'")';

$req = $connexion->query($sql);

Re: Protection des requetes SQL

par xTG » 25 nov. 2011, 12:18

Oui ! :twisted:
Heureusement que j'ai pas doublement fauté, le lien reste correct. :P

Re: Protection des requetes SQL

par moogli » 25 nov. 2011, 09:21

Utilises PDO::query().
Tu voulais dit "quote" ? :mrgreen:

Re: Protection des requetes SQL

par xTG » 25 nov. 2011, 08:10

Utilises PDO::query().

Protection des requetes SQL

par rimie » 25 nov. 2011, 03:47

Bonjour,

Je fais mes requetes par la methode query, comment puis je proteger mes donnees contre les injections, cote insert, select, update.
$sql = 'INSERT INTO commentaires VALUES (\'\', "'.$level1.'", "'.$level2.'", "'.$level3.'", "'.$num.'", "'.$commentaire.'", "'.$idpseudo.'", "'.$date_posted.'")';
$req = $connexion->query($sql);
merci