S'échapper de devis unique sur l'injection SQL

Bonjour, je suis passe par des injection SQL exemples et j'ai le scénario suivant:

Dans cet exemple, conscient du risque d'injection SQL, le développeur a décidé de bloquer les guillemets simples 'pour en retirer le guillemet simple' dans la requête. Cependant, il y a toujours un moyen de sortir de la syntaxe SQL et de les injecter un code SQL arbitraire.

Pour ce faire, vous avez besoin de penser à la requête:

SELECT * FROM users WHERE username='[username]' and password='[password]'

Le problème ici est que vous ne pouvez pas, en théorie, de briser les guillemets simples ' puisque vous ne pouvez pas injecter un devis. Toutefois, si vous injecter un anti-slash \, le deuxième dans la requête (celui censé finir la chaîne [nom d'utilisateur] s'être échappé et sera fermé par le troisième (celui censé commencer le string [mot de passe].

N'est pas ce à dire que si je saisie un "\" sur le champ nom d'utilisateur, il sera automatiquement pause la requête? et ressembler à quelque chose comme

SELECT * FROM users WHERE username='[username] and password=' ..

Suis-je raté quelque chose ? Dois-je fournir la barre oblique inverse d'une autre manière?

  • Demandez-vous comment injecter du sql ou comment vous protéger contre les attaques par injection sql?
  • comment injecter pas comment les protéger
  • Pour être honnête, vous devez utiliser les paramètres à transmettre les valeurs de nom d'utilisateur et mot de passe. Vous devriez éviter de construire une chaîne de caractères avec des valeurs de saisie de l'utilisateur et de les exécuter à l'encontre de votre base de données - qui est la 1ère étape de la protection contre les injections sql.
  • Je ne cherche pas à protéger contre, je suis à la recherche pour réaliser l'exercice, et de comprendre comment "\" échappe les caractères, car pour le moment il semble qu'il n'a pas
  • Si vous êtes à la recherche pour cela? blogs.msdn.com/b/raulga/archive/2007/01/04/...
  • Double Possible de Comment peut-assainissement qui s'échappe des apostrophes être vaincu par injection SQL dans SQL Server?

InformationsquelleAutor user3171222 | 2015-08-06