Simple, une attaque d'injection SQL en tant que peu de caractères que possible. Remarque, je n'essaie pas d'empêcher les attaques d'injection SQL en limitant les intrants d'une certaine taille, mais je suis plutôt curieux de savoir combien de caractères sont nécessaires pour exécuter même l'attaque la plus simple. p>
Pour l'amour de la postérité, disons que le nom de la table la plus petite est de 4 caractères, par exemple, "utilisateur". S'il vous plaît facteur que dans. P>
4 Réponses :
Supposons que la requête ait été générée comme celle-ci
Lors de l'injection dans une chaîne littéral:
Je crois que c'est la réponse que je cherchais, car c'est un cas d'utilisation plus réaliste. Cependant, l'autre réponse ci-dessous, alors que peut-être pas réaliste, est la réponse plus courte (et créative). Merci pour votre réponse.
1 caractère est la plus petite unité que vous avez le contrôle. La question dépend fortement de ce que vous faites. Par exemple, si vous traitez d'une interface pour supprimer votre profil à partir d'un site et que vous envoyez '%' au lieu de votre nom: puis définissez votre nom d'utilisateur sur % code> supprimera tous les utilisateurs. P> p>
Quel site sain d'esprit utiliserait comme code>?
Quel site sain d'esprit permettrait aux attaques d'injection SQL?
Aucun, mais quel site sain d'esprit ne désigne pas leurs entrées de base de données?
L'injection SQL est la voie naturelle d'un développeur débutant. Utiliser comme code> pour cela n'est pas.
Je pense que vous seriez surpris de ce que les gens sont capables. Quoi qu'il en soit, compte tenu de cet exemple artificiel, un seul caractère serait capable de causer des ravages.
Bon exemple, cela montre à quel point l'injection SQL est dangereuse. Cependant, si vous utilisez 'ou 1 = 1 - code>, cela n'a pas d'importance si vous avez utilisé
comme code> ou non dans votre commande SQL, il supprimera toujours tous les utilisateurs. .
Que diriez-vous de celui-ci:
' OR 1=1 --