« MySQL/API » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 23 :
Si on s'attend à recevoir un nombre (ex : 42), et qu'en fait <code>$_POST</code> contient une chaine avec échappement ("'42' OR 1") cela change complètement son résultat :
<source lang=sql>
DELETE FROM `articles` WHERE `id`=42 --
DELETE FROM `articles` WHERE `id`=42 OR 1 -- supprime toutes les lignes (car 1 est toujours vrai)
</source>
L'utilisateur peut aussi insérer des commandes plus complexes séparées par des points-virgules :
<source lang=sql>
SELECT * FROM `
SELECT * FROM `
</source>
Par ailleurs, si un utilisateur découvre comment manipuler une base de cette façon, il peut très bien se créer un compte administrateur ensuite, et effectuer des modifications discrètes dans le but de récupérer de l'argent.
▲ SELECT * FROM `my_nice_table` WHERE title='bla bla'; TRUNCATE TABLE `my_nice_table`
==== How to prevent that ====
|