Protection contres les injections 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 contres les injections SQL

par AB » 02 sept. 2008, 15:43

D'ailleurs en cliquant sur la fonction mysql_real_escape_string() tu verras dans les exemples, un exemple d'attaque par injection SQL.
Donc
1/Vérifier si possible que la variable dans l'url correspond à une valeur attendue. Au minimum on peut souvent tester le type et/ou caster les valeurs numériques. Exemple
<php?
$contenu = isset($_GET['contenu'])? intval($_GET['contenu']) : 0;
?>
ainsi dans l'exemple ci-dessus $contenu sera obligatoirement une valeur numérique entière.

2/Dans tous les cas (ou presque) utiliser la fonction mysql_real_escape_string() pour protéger la requête.

par DocType » 02 sept. 2008, 09:37

j'ai un lien comme suite: index.php?contenu=1 
1 est le id que j'ai recupere, j'ai entendu parle qu'on peut faire ainsi:
index.php?contenu=select * from ...
Utiliser mysql_real_escape_string :wink:

par Victor BRITO » 02 sept. 2008, 09:20

j'ai un lien comme suite: index.php?contenu=1 
1 est le id que j'ai recupere, j'ai entendu parle qu'on peut faire ainsi:
index.php?contenu=select * from ...
Preuve, s'il en est, qu'il faut toujours vérifier si un $_GET['contenu'] a été récupéré et s'il correspond à une valeur à laquelle on s'attend.

par B.Moncef » 02 sept. 2008, 08:51

De toutes les manières que tu réécrives ton url ou pas, toutes les données externes définies utilisées dans une requête SQL doivent être protégées.

par Invité » 02 sept. 2008, 05:35

j'ai un lien comme suite: index.php?contenu=1 
1 est le id que j'ai recupere, j'ai entendu parle qu'on peut faire ainsi:
index.php?contenu=select * from ...

par katagoto » 01 sept. 2008, 15:17

Au pire tu pourra toujours le simuler grâce à la gestionde l'erreur 404, c'est marrant à faire,

oui oui je sort ^^

par Djay51 » 01 sept. 2008, 14:59

C'est vrai, quel rapport avec les injections SQL ? Comme l'a dit Cyrano, le réécriture d'URL semble la meilleure solution pour ce que tu veux faire. Attention à ce que ton serveur supporte l'URL rewriting (ce qui reste très probable). A vérifier toutefois dans le phpinfo()

par Victor BRITO » 01 sept. 2008, 13:59

De plus, je ne vois pas en quoi cela concerne les injections SQL. Je suppose que tu voulais parler de paramètres d'URL.

par Cyrano » 01 sept. 2008, 08:40

Fais une petite recherche sur "url_rewritting", ce sera plus approprié que "urlencode" ;)

Protection contres les injections SQL

par Invité » 01 sept. 2008, 07:38

bonjour;

j'ai un lien comme suite: index.php?contenu=1

est-il possible de le mettre ainsi: index.php/c1

j ai entendu parle de urlencode mais je savais pas comment le faire pour tous les liens

merci