J'ai enseigné à mes collègues et ici, sur la DONC sur la bonté de l'utilisation de paramètres dans les requêtes SQL, en particulier dans .NET applications. J'ai même été jusqu'à leur promettre que de donner de l'immunité contre les attaques par injection SQL.
Mais je commence à me demander si c'est vraiment vrai. Sont-ils connus des attaques par injection SQL qui sera réussie contre une requête paramétrée? Vous pouvez par exemple envoyer une chaîne de caractères qui provoque un dépassement de tampon sur le serveur?
Il y a bien sûr d'autres considérations à faire pour s'assurer qu'une application web qui est sûr (comme la désinfection de la saisie de l'utilisateur et ce genre de trucs) mais maintenant, je pense à des injections SQL. Je suis surtout intéressé par les attaques contre MsSQL 2005 et 2008, car ils sont mes bases de données primaires, mais toutes les bases de données sont intéressantes.
Edit: Pour clarifier ce que je veux dire par des paramètres et des requêtes paramétrées. À l'aide de paramètres je veux dire en utilisant des "variables" au lieu de construire la requête sql dans une chaîne de caractères.
Donc au lieu de faire ceci:
SELECT * FROM Table WHERE Name = 'a name'
Nous faisons cela:
SELECT * FROM Table WHERE Name = @Name
et puis définissez la valeur de l' @Nom du paramètre de la requête / commande de l'objet.