Réponse :
Plusieurs clients nous ont fait part ces derniers temps d'intrusions illicites sur leur site.
En effet, ils ont constaté qu'une personne non autorisée avait réussi à accéder à des parties confidentielles de leur site.
Dans la totalité des cas répertoriés, la cause de l'intrusion était un développement ASP non conforme aux règles de sécurité en vigueur.
Veuillez trouver ci dessous un document technique expliquant le problème, ainsi que des sources vous permettant de corriger les éventuels failles de sécurité de vos sites.
Définition :
SQL injection est un terme désignant l'usage illicite d'un code SQL dans une application.
Le recours à ce genre de technique peut permettre à une personne mal intentionnée de provoquer des erreurs graves sur une base de données.
Exemple :
Votre site possède un système d'authentification ?
Utilisez les paramètres suivants pour tenter de vous identifier :
- nom d'utilisation : admin
- mot de passe : 'OR''='
Si vous passez outre le système d'authentification, votre site représente une cible potentielle pour ce type d'attaque.
L'introduction du code SQL suivant ['OR''='] a corrompu la requête SQL finale et a ainsi permis d'accéder à une entrée de votre base de données.
Dans cet exemple précis, la personne identifiée aurait accès à l'ensemble des services de vos membres.
Attention toutefois, car cette faille de sécurité dans le développement de votre site pourrait amener à la destruction pure et simple d'enregistrements dans votre base de données.
Solution :
Afin de pallier à ce trou de sécurité, plusieurs solutions sont courantes :
- si l'utilisateur doit renseigner un champs numérique, vérifier le type de données insérées en utilisant les fonctions appropriées
- pour les chaînes de caractères, remplacer les apostrophes par deux apostrophes
- utiliser des procédures stockées
Pour de plus amples informations, nous vous invitons à parcourir les liens suivants afin de prendre connaissance de toutes les solutions envisageables :
http://dev.nexen.net/docs/php/annotee/security.database.sql-injection.php
http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=3
http://www.owasp.org
http://www.spidynamics.com/whitepapers/WhitepaperSQLInjection.pdf
http://www.nextgenss.com/papers/advanced_sql_injection.pdf