SQL-побег с sqlite в С#

У меня есть текстовое поле и его разбиение на мой sql-оператор. Как избежать всех символов в этом поле? Я использую sqlite с http://sqlite.phxsoftware.com/ в С#

Ответы

Ответ 1

Вы должны использовать параметр, как в:

SQLiteCommand cmd = _connection.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM MyTable WHERE MyColumn = @parameter";
cmd.Parameters.Add( new SQLiteParameter( "@parameter", textfield ) );
SQLiteDataReader reader = cmd.ExecuteReader();

Использование параметризованного SQL избавит от всех входных значений и поможет защитить вас от атак SQL-инъекций.

Ответ 2

Вы также можете заменить все разделители одиночных кавычек сомнительными одиночными кавычками (а не ").

sql = sql.Replace("'","''");