4

我正在编写一个 C 应用程序,它需要一些用户输入并执行一些数据库查询。我很清楚 SQL 注入的风险,并希望阻止它。

理想情况下,我会使用参数化查询,但到目前为止在 C 中找不到任何具有此功能的东西。我目前正在构建我的查询:

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

如果我无法做到这一点,那么我必须过滤用户输入。这个过滤应该怎么做?仅删除所有 's 和 "s 就足够了吗?(有效输入不能包含它们)。如果是这样,在 C 中执行此操作的最简单方法是什么?

4

1 回答 1

7

我相信你想使用准备好的语句和参数绑定。不要直接将用户数据插入到您的查询中。有关这方面的信息,请参阅MySQL 手册

于 2011-04-29T02:55:06.777 回答