Предотвращение SQL-инъекций в C - PullRequest
4 голосов
/ 29 апреля 2011

Я пишу приложение на C, которое принимает данные от пользователя и выполняет несколько запросов к базе данных. Я хорошо осведомлен о рисках внедрения SQL-кода и хочу его предотвратить.

В идеале я бы использовал параметризованные запросы, но пока не смог ничего найти с этой функциональностью в Си. Я сейчас строю свои запросы так:

char *query;
asprintf(&query, "UPDATE SomeTable SET SomeField='%s';", userInput);

Если я не могу этого сделать, мне необходимо отфильтровать вводимые пользователем данные. Как сделать эту фильтрацию? Достаточно ли просто удалить все «и»? (Допустимые входные данные не могут их содержать). Если это так, какой самый простой способ сделать это в C?

1 Ответ

7 голосов
/ 29 апреля 2011

Я считаю, что вы хотите использовать подготовленные операторы и привязку параметров.Не интерполируйте пользовательские данные напрямую в ваши запросы.См. руководство по MySQL для получения информации об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...