Existe-t-il des outils dans .NET 4 pour "automatiser" les vérifications des champs SQL contre les injections SQL?Injections SQL et .NET 4
je vis this article, mais peur pourrait être pas à ce jour ...
EDIT:
Oracle Db compatible ...
Existe-t-il des outils dans .NET 4 pour "automatiser" les vérifications des champs SQL contre les injections SQL?Injections SQL et .NET 4
je vis this article, mais peur pourrait être pas à ce jour ...
EDIT:
Oracle Db compatible ...
Je crois que vous évitez le problème en utilisant sqlparameters.
L'outil le plus simple dans ADO.NET est d'utiliser paramètres sql pour toutes vos valeurs de requête qui sont variables. Cela a également un avantage d'efficacité. Même si vous avez explicitement sql dans votre code et n'utilisez pas du tout des procédures ou des fonctions stockées, vous gagnez tous les deux de ces avantages en utilisant la même chaîne de requête tout en ne faisant varier que les valeurs de vos paramètres.
Il peut y avoir des moments (avec les moteurs de recherche par exemple) où vous avez vraiment besoin de construire dynamiquement votre texte de commande sql, sans pouvoir utiliser les paramètres sql. C'est regrettable, car les autres moyens de se protéger contre l'injection SQL (différents types de listes noires de désinfection et de mots clés) sont plus impliqués et exigent que vous soyez réfléchi et intelligent. Essayez d'éviter cela!
Est-ce une question "ADO.NET"? Si c'est alors oui SQLParameters sont votre ami. L'article de Scott Gu sur le sujet est ancien mais toujours très utile et a de bons conseils.
Si vous ne l'utilisez ADO.NET alors la plupart des ORM se protéger contre les attaques pour vous. LLBLGen par exemple génère des requêtes paramétrées. Comme Linq to SQL. Je suppose qu'ils font tous, mais vérifiez avec votre saveur de ORM :)
Pour moi, le moyen le plus simple est d'utiliser Linq2Sql pour interroger la base de données. Ce n'était pas mentionné dans l'article parce qu'il n'existait pas. Vous pouvez également utiliser Entity Framework. Il offre plus de puissance avec une courbe d'apprentissage un peu plus élevée. Il y a beaucoup d'autres ORM et la plupart (peut-être tout sauf moi) vous protègeront contre l'injection SQL. L'autre bonne chose est que l'ORM prend soin de créer un objet à partir du résultat.
J'ai été capable d'utiliser des paramètres même lors de la construction dynamique de requêtes. Ça en vaut la peine. –
Bon point sur l'efficacité adv. –