2009-01-16 4 views
1

Dans un projet sur lequel je travaille, j'ai besoin d'insérer des données dans une base de données SQLite3 via C++. Afin d'éviter un incident "Little Bobby Tables", j'ai besoin d'assainir mes entrées de base de données. Je voudrais trouver une bibliothèque qui fait cela en C++ plutôt que de rouler la mienne car cela conduit généralement à des problèmes. Étant donné que l'application insérera des données ID3 provenant de MP3 dans la base de données, le besoin en ce domaine est primordial puisque de nombreux titres d'artistes, d'albums et de chansons incluent des caractères non valides.Bibliothèques C++ SQL Sanitization ou constructeurs de requêtes offrant la désinfection

J'ai trouvé un post SO plus tôt (il ne semble pas le trouver maintenant ...) qui détaillait différentes bibliothèques de construction de requêtes pour C++, mais aucune de ces bibliothèques ne dit clairement qu'elles offrent des fonctionnalités de désinfection. Je détesterais commencer à en implémenter un pour découvrir qu'il n'a pas cette fonctionnalité. Il doit y avoir une bibliothèque là-bas qui fait cela, mais mes recherches m'ont échoué.

Ma question est, quelles bibliothèques sont disponibles qui désinfecteront l'entrée de base de données en C++? Cela ne me dérange pas de rouler le mien, mais je voudrais l'éviter à tout prix. Merci tout le monde!

Répondre

2

Réponse courte: ne désinfectez pas votre entrée. Utilisez des requêtes paramétrées à la place. Ils sont plus sûrs et plus rapides.

+2

Amen. Tenter de rechercher des intrants "vilains" est une bataille perdue; Quelqu'un viendra avec un moyen détourné autour de votre filtre, et en même temps vous allez contrarier tous ceux dont le nom de famille est "O'Reilly". –

0

Je ne suis pas sûr mais SOC Je pourrais être en mesure de vous aider en ce qui concerne la sécurité de conversion de type. J'ai personnellement utilisé ceci et je peux dire qu'il vaut vraiment la peine d'examiner même si votre objectif est simplement d'utiliser une bibliothèque saine pour envelopper l'accès à la base de données à différents backends.

Questions connexes