Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dois-je me prémunir contre l'injection SQL si j'ai utilisé une liste déroulante ?

Oui, vous devez vous protéger contre cela.

Laissez-moi vous montrer pourquoi, en utilisant la console développeur de Firefox :

Si vous ne nettoyez pas ces données, votre base de données sera détruite. (Ce n'est peut-être pas une instruction SQL totalement valide, mais j'espère avoir compris mon point de vue.)

Ce n'est pas parce que vous avez limité les options disponibles dans votre liste déroulante que cela signifie vous avez limité les données que je peux envoyer à votre serveur.

Si vous avez essayé de restreindre davantage ce comportement d'utilisation sur votre page, mes options incluent la désactivation de ce comportement ou simplement l'écriture d'une requête HTTP personnalisée sur votre serveur qui imite de toute façon cette soumission de formulaire. Il existe un outil appelé curl utilisé exactement pour ça, et je pense la commande pour soumettre cette injection SQL de toute façon ressemblerait à ceci :

curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--"  http://www.example.com/profile/save

(Ce n'est peut-être pas une commande curl totalement valide, mais encore une fois, j'espère avoir compris.)

Donc, je vais répéter :

NE JAMAIS faire confiance à l'entrée de l'utilisateur. Protégez-vous TOUJOURS.

Ne présumez pas qu'aucune entrée d'utilisateur n'est jamais sûre. Il est potentiellement dangereux même s'il arrive par d'autres moyens qu'un formulaire. Rien de tout cela n'est jamais assez fiable pour renoncer à vous protéger de l'injection SQL.