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 ]
Mardi 22 janvier 2019 - Semaine 04 - Saint Vincent (Demain: Saint Barnard)
Aujourd'hui, c'est l'anniversaire de Frank Leboeuf (1968-51 ans), footballeur français (défenseur). Autre 22 janvier: 1981 - Début de la série américaine Dallas sur les écrans français (TF1).
Haut de page Easy-Micro