Injection SQL

Auteur: Peter Berry
Date De Création: 13 Août 2021
Date De Mise À Jour: 22 Juin 2024
Anonim
Основы баз данных и SQL. Введение в SQL инъекции
Vidéo: Основы баз данных и SQL. Введение в SQL инъекции

Contenu

Définition - Que signifie injection SQL?

Une injection SQL est une attaque informatique dans laquelle un code malveillant est incorporé dans une application mal conçue puis transmis à la base de données principale. Les données malveillantes produisent ensuite des résultats de requête de base de données ou des actions qui n'auraient jamais dû être exécutées.


Introduction à Microsoft Azure et au nuage Microsoft | Tout au long de ce guide, vous apprendrez ce qu'est le cloud computing et comment Microsoft Azure peut vous aider à migrer et à exploiter votre entreprise à partir du cloud.

Techopedia explique l'injection SQL

Passons en exemple avec une attaque par injection SQL:

Une application exécutant les opérations d’une banque contient des menus qui peuvent être utilisés pour rechercher des informations client à l’aide de points de données tels que le numéro de sécurité sociale du client. En arrière-plan, l'application appelle une requête SQL qui s'exécute dans la base de données en transmettant les valeurs de recherche entrées comme suit:

SELECT nom_client, téléphone, adresse, date_naissance WHERE code_social = 23425

Dans cet exemple de script, l'utilisateur entre la valeur 23425 dans la fenêtre du menu de l'application, l'invitant à saisir le numéro de sécurité sociale. Ensuite, en utilisant la valeur fournie par l'utilisateur, une requête SQL s'exécute dans la base de données.

Un utilisateur connaissant SQL peut comprendre l'application et, au lieu de saisir une valeur unique lorsque le numéro de sécurité sociale lui est demandé, entrez la chaîne «23425 ou 1 = 1», qui est transmise à la base de données de la manière suivante:

SELECT nom_client, téléphone, adresse, date_naissance WHERE code_social = 23425 ou 1 = 1

La clause WHERE est importante car elle introduit une vulnérabilité. Dans une base de données, la condition 1 = 1 est toujours vraie et, comme la requête a été spécifiée pour renvoyer les détails du numéro de sécurité sociale du client (23425) ou WHERE 1 = 1, la requête renvoie toutes les lignes de la table, qui n'étaient pas les mêmes. intention originale.

L'exemple d'attaque d'injection SQL ci-dessus est simple, mais il montre comment exploiter une vulnérabilité pour amener l'application à exécuter une requête ou une commande de base de données principale.

Les attaques par injection SQL peuvent être atténuées en veillant à une conception correcte des applications, en particulier dans les modules qui nécessitent l'intervention de l'utilisateur pour exécuter des requêtes ou des commandes de base de données. Dans l'exemple ci-dessus, l'application peut être modifiée de sorte qu'elle n'accepte qu'une valeur numérique.