SQL escape с помощью sqlite в C # - PullRequest
13 голосов
/ 11 марта 2009

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

Ответы [ 2 ]

31 голосов
/ 11 марта 2009

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

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.

0 голосов
/ 11 марта 2009

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

sql = sql.Replace("'","''");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...