Easy-Micro


ESPACEMEMBRE SQL
Sécurité SQL

Sécurité et SQL

SQL Injection SQL
Une injection SQL est l'exploitation d'une faille de sécurité d'une application interagissant avec une base de données (comme un formulaire). Le but est d'injecter une requête SQL non prévue par le système et pouvant compromettre sa sécurité.

Imaginons un formulaire de type accès privé avec ce traitement classique de requête SQL saisie en PHP
$requete = "SELECT * WHERE nom = '".$nom."' AND pwd = '".$mdp."'";

Soit la requête
SELECT * WHERE nom = 'durand' AND pwd = 'vfsdfvv';

Si le script PHP qui exécute cette requête ne vérifie pas les données entrantes, il existe une grosse faille de sécurité.

Le pirate pourra saisir dans le champ nom "durand --" et n'importe quel mot de passe.

La requête devient
SELECT * WHERE nom = 'durand --' AND pwd = 'vfsdfvv';

Les caractères -- marquent le début d'un commentaire en SQL.

La requête est donc équivalente à :
SELECT * WHERE nom = 'durand';


Pour le mot de passe, le pirate pourra injecter le code suivant : ' or 1=1--
L'apostrophe indique la fin de la zone de frappe de l'utilisateur, le code "or 1=1" demande au script si 1=1 est vrai, or c'est toujours le cas, et -- indique le début d'un commentaire.

La solution consiste à traiter les chaînes de caractères entrées par l'utilisateur avec la fonctions PHP mysql_real_escape_string qui transforme la chaîne ' -- en \' --


Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Lundi 18 mars 2019 - Semaine 12 - Saint Cyrille de Jérusalem (Demain: Saint Joseph)
Aujourd'hui, c'est l'anniversaire de Luc Besson (1959-60 ans), réalisateur et producteur français, de Xavier Deluc (1958), acteur français et de Laetitia Hallyday (1975). Autre 18 mars: 1314 : supplice de Jacques de Molay, grand maître des Templiers.
Haut de page Easy-Micro