jQuery
En savoir plus
Adobe Flex & Flash
En savoir plus
ASP.NET
En savoir plus

Le problème de ce sujet a été résolu
Offre d'emploi : Développeur Web PHP/Drupal (H/F)
| Page 1 | |||
| Auteur | Message | ||
|---|---|---|---|
| 2 visiteurs sur ce sujet (2 anonymes) | |||
| Page 1 | |||
Jacksons
|
# Posté le 08/02/2012 à 18:39:35 | ||
|
|
Voilà qu'on ai lu le tuto de Matéo, fait des études en info ou lu des articles sur le net, la plupart d'entre nous est au courant de l'existence de la fameuse faille d'injection SQL. Cependant s'en protéger est une autre histoire. J'ai lu de multiples articles sur le net et une méthode efficace pour se protéger de la faille SQL revient souvent : Les requêtes préparées. Sachant que j'utilise PDO, est ce que si j'applique ce type de code sur TOUTES mes requêtes, je me protège efficacement ou alors est-ce qu'il me manque des choses importantes ?
Voilà ce code par exemple va chercher la dernière actualité en date dans ma bdd Code : PHP
Ce code marche, là n'est pas la question, mais est-il sécuritaire ? Me protège t-il aussi par exemple de l'insertion des guillemets dans la requête, ce qui était anciennement protégé par les "guillemets magiques" ? Merci pour vos réponses ! |
||
| Publicité | # Posté le 08/02/2012 à 18:39:35 | ||
|
|
|||
philodick
|
# Posté le 08/02/2012 à 18:45:22 | ||
![]()
|
Non, ton code n'a pas de sens, tu devrais 'binder' des valeurs, pas des colonnes de ta table.
De toute façon, dans ton cas, il n'y a pas de problème de faille puisque tu n'utilises aucune donnée 'extérieure'. |
||
Jacksons
|
# Posté le 08/02/2012 à 18:54:15 | ||
|
|
Tout d'abord merci pour ta réponse.
Si je comprend bien ce que tu veux dire, en gros les bindValue s'utilisent uniquement pour les requêtes qui introduisent des nouvelles données dans la bdd fournies par l'utilisateur ? Mais par exemple si un utilisateur s'inscrit et que je laisse le droit de mettre des chiffres et des lettres dans son pseudo, je n'ai pas besoin de mettre de bindValue même si je récupère et affiche son pseudo ?
Édité
le 08/02/2012 à 18:54:37
par Jacksons
|
||
philodick
|
# Posté le 08/02/2012 à 18:59:17 | ||
![]()
|
En gros, oui. Tant que ta requête ne comporte pas de données transmises par l'utilisateur, il ne peut y insérer de code malicieux.
|
||
Jacksons
|
# Posté le 08/02/2012 à 19:07:47 | ||
|
|
D'accord, donc en gros si j'affiche des actualités que je suis seul à créer dans ma base de données, le pirate n'a aucun moyen de les transformer en chiffre ou d'en modifier le contenu par exemple. Il faut obligatoirement qu'il ait à rentrer des données qui s'inscrivent dans la bdd via une requête pour qu'il puisse exploiter une faille, c'est un bon résumé ?
Et donc les requêtes préparées sont vraiment un moyen efficace de se protéger contre cette faille SQL ? Déso pour toutes ces questions, mais la sécurité PHP fait encore partie de ces trucs que j'essaie de bien éclaircir |
||
philodick
|
# Posté le 08/02/2012 à 19:12:08 | ||
![]()
|
Oui, c'est un bon moyen parce que ça fait traiter les données envoyées comme des chaînes de caractères ou des valeurs numériques par la requête, et non pas comme des instructions SQL.
|
||
Jacksons
|
# Posté le 08/02/2012 à 19:15:25 | ||
|
|
Ah ouai ok, je comprend mieux son efficacité.
En tout cas merci pour ton aide, je vais de ce pas reprendre toutes mes requêtes afin qu'elles soient préparées ! |
||
Retour au forum "PHP" ou à la liste des forums
