php securité injection

Petit nouveau ! | 3 Messages

04 mars 2011, 10:36

Bonjour!


J'ai développé un certain nombre de site web mais je ne me suis jamais vraiment posé de questions sur la sécurité.

Aujourd'hui j'essaie de me protéger des injections SQL dans mes formulaires.

En faisant quelques tests avec les classique ' OR 1=1 ou autres , je me suis apperçu que le caractere apostrophe était remplacé par \'
Tout ceci est très bien puisque l'injection SQL devient impossible.

Mais la question que je me pose c'est d'où vient cet anti-slash ? du navigateur ou d'un réglage d'apache?

Merci de votre aide!

ViPHP
ViPHP | 5462 Messages

04 mars 2011, 11:19


Petit nouveau ! | 3 Messages

04 mars 2011, 11:31

Merci pour le lien,

donc en bref, c'est un reglage d'apache/php par defaut.

Par contre il est précisé sur le lien que tu m'as donné, que cette méthode est déconseillée et qu'il est préférable de protéger le code directement! Je trouve ça bizarre et très lourd à mettre en place ! M'enfin c'est mon avis :p


bye :)

ViPHP
ViPHP | 5462 Messages

04 mars 2011, 11:40

c'est une vielle directive, et aussi une vielle pratique, l'option des requête préparer est très simple a mettre en place avec mysqli ou PDO, sinon sous mysql_* te peu en faire grâce a mon petit code :
vos-contributions/faire-des-requetes-pr ... 55960.html
https://github.com/stealth35/mysql_prepare

ViPHP
ViPHP | 2577 Messages

04 mars 2011, 11:43

Bonjour,

Pour éviter ces problèmes, on peut utiliser mysqli_stmt_bind_param (http://www.php.net/manual/en/mysqli-stmt.bind-param.php)

devlop78
Invité n'ayant pas de compte PHPfrance

05 mars 2011, 21:56

Moi, et je ne suis pas le seul :p, je ne peux pas te conseiller les requêtes préparées. Perso, je les utilises que si je répète une requêtes plusieurs fois (réellement ou potentiellement).

Par contre, pour PDO par exemple, même sur des valeurs sûres, j'utilise quote(). Il s'adapte au SGBD. Juste à faire Gaf à ne pas le mettre pour représenter NULL, et selon les SGBD, pour les numériques etc, mais avec Mysql, pas de problèmes.

magic_quotes On, n'est pas une valeur par défaut de Php, mais bien encore une fois une configuration utilisée par trop d'hébergeurs pour les trop nombreux sites d'amateurs qu'ils hébergent. C'est une option gourmande, véritable piège.

Petit nouveau ! | 3 Messages

06 mars 2011, 10:48

merci pour toutes ces précisions :)

Eléphant du PHP | 275 Messages

07 mars 2011, 15:55

Par contre il est précisé sur le lien que tu m'as donné, que cette méthode est déconseillée et qu'il est préférable de protéger le code directement! Je trouve ça bizarre et très lourd à mettre en place ! M'enfin c'est mon avis :p
Pourtant, tu ferme ton appart a clef tous les matins sans y penser...