2010-01-22 5 views
0

Est-ce que quelqu'un pourrait me dire un moyen d'empêcher l'injection sql lors de la création de requêtes pour SQLite où la clause WHERE a une condition "myval IN (string_1, ... , string_n)"? Je pense à la construction dynamique du texte de commande avec des annotations et à l'ajout des paramètres de ces annotations dans la liste de chaînes. Y a-t-il un moyen plus facile?Injection SQLite avec liste de chaînes

Merci.

Répondre

5

Non, il n'y a pas de solution plus simple. Ne faites pas une liste de caractères dangereux. Utilisez simplement la commande avec les paramètres.

using (var conn = new SQLiteconnection(connectionString)) 
using (var command = conn.CreateCommand()) 
{ 
    conn.Open(); 
    command.CommandText = "select name from persons where id = @id"; 
    command.Parameters.AddWithValue("@id", 5); 
    using (var reader = command.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 

     } 
    } 
} 
Questions connexes