Articles / Nouvelle technologies


En C# nous utilisons souvent l'opérateur "+" pour concaténer des chaines de caractères, mais lorsque nous utilisons cette méthode pour la construction de requêtes SQL nous nous exposons à des problèmes de sécurité comme les injections SQL. Pour remédier à ce problème, nous pouvons utiliser les paramètres pour la construction de commandes SQL.

Mauvaise méthode :

[code:c#]
SqlCommand maRequete = new SqlCommand("SELECT COUNT(*) FROM Utilisateur WHERE Login='" + login + "' AND Password='" + password + "'", conn);
[/code]

Bonne méthode :

[code:c#]
SqlCommand maRequete = new SqlCommand("SELECT COUNT(*) FROM Utilisateur WHERE Login=@login AND Password=@password", conn);
SqlParameter pLogin = new SqlParameter("login", SqlDbType.VarChar, 100);
pLogin.Value = login;
maRequete.Parameters.Add(pLogin);
pPass = new SqlParameter("password", SqlDbType.VarChar, 100);
pPass.Value = password;
maRequete.Parameters.Add(pPass);
[/code]

A bientôt



Lire la suite...
Tags:
Catégorie : ADO.NET

Une question sur cet article? n'hésitez pas a me contacter par Live Messegner. Suis-je connecté?

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Par Loïc Bar le 14/10/2007 18:50:01

Permalink | Commentaires (1) | Post RSS |


Commentaires

14/10/2007 21:42:16

Pierre-Emmanuel Dautreppe

A rattacher à l'article de l'excellent Dino Esposito :
"Arrêtez les attaques par injection SQL avant qu'elles ne vous arrêtent"
msdn.microsoft.com/.../default.aspx?loc=fr

Pierre-Emmanuel Dautreppe be

Ajouter un commentaire



(Affichera votre icône Gravatar)  

  Country flag






Flux rss



Ou, la newsletter! Abonnez-vous!


Tags



Blogroll



Statistiques






Propulsé par BlogEngine.NET, modifé par Loïc Bar.