Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager
Attacchi da iniezione di comandi SQL Ataques por injeção de encomendas SQL Angriffe durch die Einschleusung von SQL Befehlen Ataques de inyección SQL SQL injection attacks

Injection de commandes SQL

Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles.

Dans ce type de sites, des paramètres sont passés à la base de données sous forme d'une requête SQL. Ainsi, si le concepteur n'effectue aucun contrôle sur les paramètres passés dans la requête SQL, il est possible à un pirate de modifier la requête afin d'accéder à l'ensemble de la base de données, voire à en modifier le contenu.

En effet, certains caractères permettent d'enchaîner plusieurs requêtes SQL ou bien ignorer la suite de la requête. Ainsi, en insérant ce type de caractères dans la requête, un pirate peut potentiellement exécuter la requête de son choix.

Soit la requête suivante, attendant comme paramètre un nom d'utilisateur :

SELECT * FROM utilisateurs WHERE nom="$nom";

Il suffit à un pirate de saisir un nom tel que « toto" OR 1=1 OR nom ="titi » pour que la requête devienne la suivante :

SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";

Ainsi, avec la requête ci-dessus, la clause WHERE est toujours réalisée, ce qui signifie qu'il retournera les enregistrements correspondant à tous les utilisateurs.

Procédures stockées

De plus, certains systèmes de gestion de bases de données tel que Microsoft SQL Server possèdent des procédures stockées permettant de lancer des commandes d'administration. Ces procédures stockées sont potentiellement dangereuses dans la mesure où elles peuvent permettre à un utilisateur malintentionné d'exécuter des commandes du système, pouvant conduire à une éventuelle intrusion.

Parades

Un certain nombre de règles permettent de se prémunir des attaques par injection de commandes SQL :

  • Vérifier le format des données saisies et notamment la présence de caractères spéciaux ;
  • Ne pas afficher de messages d'erreur explicites affichant la requête ou une partie de la requête SQL.
  • Supprimer les comptes utilisateurs non utilisées, notamment les comptes par défaut ;
  • Eviter les comptes sans mot de passe ;
  • Restreindre au minimum les privilèges des comptes utilisés ;
  • Supprimer les procédures stockées ;


Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Attaques par injection de commandes SQL » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Commande sql avec formulaire access Bonjour, je désire créer une requête SQL dans Access.cette requête devra utiliser une valeur qui aura été introduite par l'utilisateur via un formulaire. quelle commande SQL dois je utiliser et comment? d'avance merci www.commentcamarche.net/forum/affich-6378191-commande-sql-avec-formulaire-access
Commande SQL Bonjour, je voulais un cout de main en SQL mon problème : la commande SQL qui permet j'ajouter un attribut dans un tableau SQL Merci d'avance................... www.commentcamarche.net/forum/affich-10644999-commande-sql
Protéger votre serveur ssh contre les attaques brute-forcessh est excellent pour accéder à distance à ses fichiers, ou même utiliser son ordinateur à distance. Mais que faire contre les attaques de type brute-force ? (Essai de toutes les combinaisons de lettre pour trouver le mot de passe). C'est... www.commentcamarche.net/faq/sujet-6748-proteger-votre-serveur-ssh-contre-les-attaques-brute-force
[Windows] Démarrer/arrêter un service en ligne de commandeL'outil netsh (netsh.exe) permet d'automatiser le démarrage ou l'arrêt d'un service grâce à la ligne de commande suivante : Pour démarrer un service : Net start nom_du_service Pour arrêter un service : Net stop nom_du_service Cela nécessite les... www.commentcamarche.net/faq/sujet-2739-windows-demarrer-arreter-un-service-en-ligne-de-commande
[MS-Dos] Commandes DOS de baseCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de /?... www.commentcamarche.net/faq/sujet-2187-ms-dos-commandes-dos-de-base
Attaques - Injection de commandes SQLBonsoir, je voudrais savoir si une attaque par injection de commandes SQL est toujours possible même avec les protections qui existent? Et comment "injecter " cette nouvelle commande? merci www.commentcamarche.net/forum/affich-4478623-attaques-injection-de-commandes-sql
Commande SQL LIMITMa commande "select * from TOTO LIMIT 5" ne passe pas.....c a d que g tous le resultats et pas seulement les 5 premiers... J utilise Access pour l'instant...y a t il un lien???? Merci de m 'aider.. www.commentcamarche.net/forum/affich-10778-commande-sql-limit
Executer un fichier en SQLBonjour... voila mon petit probleme... j'essaye de d'executer un fichier texte que j'ai appele c.sql ou j'ai mis l'ensemble de mes creations de table je l'ai placé dans C:\Program Files\MySQL\MySQL Server 4.1\bin. mais... je lance la commande mysql>... www.commentcamarche.net/forum/affich-1858022-executer-un-fichier-en-sql
SQL - Commande SELECTLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la... www.commentcamarche.net/contents/sql/sqlsel.php3
SQL - TriTri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou... www.commentcamarche.net/contents/sql/sqltri.php3
SQL - RestrictionExpression des restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique... www.commentcamarche.net/contents/sql/sqlrestr.php3