|
|
jui
25
2006
|
En quoi consistent les attaques par injection de code SQL ? |
|
|
|
Sécurité -
Protection
|
|
Ecrit par Kamal AOUDA
|
|
25-07-2006 |
|
En quoi consistent les attaques par injection de code SQL ?
Il s’agit d’insérer un code malveillant dans une chaîne de caractère afin de
corrompre le contenu d’une base de données ou de subtiliser des informations
confidentielles (SQL Server, MySQL, Oracle…). Typiquement le processus
d’injection termine prématurément une chaîne de caractère en lui ajoutant une
nouvelle commande SQL qui sera exécutée par le gestionnaire de base de données.
En d’autres termes, Les injections SQL prennent typiquement la forme de
concaténations directes de code dans les données entrées par un utilisateur.
Le code suivant donne un exemple d’injection sous SQL Server (nous rappelons que
SQL Server utilise une version Microsoftisée de SQL connue sous le nom Transact
SQL).
var Shipcity; ShipCity = Request.form ("ShipCity"); var sql = "select * from
OrdersTable where ShipCity = '" + ShipCity + "'";
L'utilisateur est invité à renseigner le nom d'une ville. Si l'utilisateur entre
Roco, la requête devient:
SELECT * FROM OrdersTable WHERE ShipCity = 'Roco'
Mais supposons qu’un hacker renseigne ce qui suit :
Roco'; drop table OrdersTable—
Dans ce cas, la requête assemblée par le script devient :
SELECT * FROM OrdersTable WHERE ShipCity = 'Roco';drop table OrdersTable--'
Le point-virgule « ; » indique la fin d'une requête et le début d'une autre. Le
double tiret « -- » marque le début d’un commentaire qui sera ignoré par le
gestionnaire de base de données. Lorsque SQL Server exécute cette instruction,
il y aura une sélection de tous les enregistrements OrdersTable où ShipCity =
Roco puis il y aura une suppression pure et simple de la table OrdersTable. Vous
imaginez qu’en situation réelle un tel incident pourrait avoir de graves
conséquences sur l’activité d’une entreprise.
Tant que le code SQL injecté est syntaxiquement valide, le gestionnaire de base
de données n’a aucun moyen de soupçonner qu’il est malicieux. De ce fait, il
faut systématiquement valider toutes les données entrées par un utilisateur.
Des techniques permettant de contrer les attaques par voie d’injection SQL sont
énumérées dans l'article suivant.
Se prémunir contre les attaques par injection de code SQL
Kamal AOUDA
|
|
Dernière mise à jour : ( 25-07-2006 )
|
|
Hack Proofing Your E-Commerce Site |
|
Hack Proofing Your E-Commerce Site
Les mesures à prendre pour la
sécurisation des sites de commerce électronique sont, à bien des égards,
similaires à celles des autres catégories de sites. Il existe néanmoins
des différences dues principalement aux risques liés à la collecte et au
traitement des informations relatives au paiement des transactions
(cartes de crédit, informations personnelles du client …).
Ce livre se distingue par des chapitres dédiés entièrement à la
sécurisation des sites d’e-commerce. Ces chapitres qui représentent
environ le tiers du livre, couvrent aussi bien les considérations
techniques que des les considérations légales dont il faut tenir compte
lors de la sécurisation des sites de commerce électronique.
Références
Ryan Russell, Brent Huston,
Lien sur le site d'Amazon. , Syngress; 1ère édition (15 juin 2001),
Langue: Anglais ,
ISBN: 192899427X
|
|
|