hacks injection SQL sont exécutées sur des serveurs qui n'ont pas la programmation sécurisée nécessaire. Ceux-ci sont habituellement réalisées sur les serveurs où le code de pages Web utilise inline SQL, ce qui signifie que la requête est dans le code page web plutôt que situé dans une procédure stockée . Savoir comment un hack d'injection SQL fonctionne permet aux propriétaires de site Web de protéger les données des clients et de sécuriser les pages web . Le formulaire Variable
La première étape pour comprendre comment une attaque par injection SQL est créé est de répliquer le problème. Attaques par injection SQL sont accomplies par des variables de formulaire dans une page HTML. Création du formulaire permet au webmaster pour simuler et tester la sécurité du serveur web. Voici un exemple d'un objet de forme utilisé pour créer une attaque par injection SQL.
Bien que ce soit une forme simple zone de texte , c'est tout ce qui est nécessaire pour réaliser une injection SQL. The Hacker le code
Lorsque les instructions SQL sont faits , l'application s'appuie code SQL qui est envoyé à la base de données . Quand une chaîne est envoyée à la base de données , le code ressemble le texte ci-dessous:
select * from myTable où name = ' myVariableFromtheForm '
La coche signifie la fin du code SQL , et c'est là que les pirates cible. Quand une zone de texte comme celui créé dans la section 1 est utilisé pour construire une chaîne, un pirate peut entrer quelque chose comme ce qui suit dans la zone de texte :
'ou 1 = 1; -
pourrait ressembler à du charabia , mais en fait, il injecte du code dans la base de données qui est géré par le serveur. Lorsque " myVariableFromtheForm " est remplacé par le code ci-dessus , la déclaration géré par le serveur ressemble réellement à ce qui suit:
select * from myTable où name = '' ou 1 = 1 - '
le "-" est le code de commentaires pour le serveur SQL, de sorte que le dernier tick fin est ignoré. La chaîne est vide et le pirate injecte le code " 1 = 1" dans la déclaration. Qu'est-ce qui ne fait que retourner chaque ligne de la table pour le pirate . C'est comment une personne sans scrupules vole des informations privées à partir de serveurs de bases de données . Régler le problème
La meilleure façon de résoudre le problème dans le code qui est susceptible de un hack injection SQL est d'utiliser la fonction "Remplacer" dans tous les cas où le texte est entré par les utilisateurs. Par exemple, dans le code ASP, la ligne de code suivante remplace la coche unique avec deux. Quand un serveur SQL Server exécute le code avec deux graduations , il les lit comme un littéral et la chaîne n'est pas terminée
String.replace ( "'", "''" ) ; .
le code ci-dessus remplace toutes les instances d' une coche unique avec deux, enlever la vulnérabilité d'une attaque par injection SQL.