SQLite-инъекция со списком строк - PullRequest
0 голосов
/ 22 января 2010

Может ли кто-нибудь сказать мне, как предотвратить внедрение sql при построении запросов для SQLite, где предложение WHERE имеет условие "myval IN (string_1, ... , string_n)"?

Я думал о динамическом построении текста команды с аннотациями и добавлении параметров для этих аннотаций из списка строк. Есть ли более простой способ?

Спасибо.

1 Ответ

5 голосов
/ 22 января 2010

Нет, проще нет. Не составляйте список опасных персонажей. Просто используйте команду с параметрами.

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())
        {

        }
    }
}
...