mysql - 如何使用准备好的语句防止 C 语言中的 SQL 注入(inject)?

标签 mysql c prepared-statement code-injection

我必须保护我的软件免受 SQL 注入(inject)攻击。

这是我的 C 代码示例:

char myquery[QUERY_LEN];
sprintf(myquery, "select * from patient p where p.id_doc='%s'", us_names[index].name);

if (mysql_query(conn, myquery )) {
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(1);
}

我想使用准备好的语句,因为我读到这是最好的解决方案,但我不明白它是如何工作的。

我用了谷歌,但我没有找到任何 C 语言的例子。

你能用我的代码举个例子吗?

最佳答案

欢迎来到 SO。您找不到您的 代码的完整示例。只是一般的例子。如果您想了解有关代码注入(inject)预防的更多信息,请在谷歌上搜索该主题,而不是针对您的具体问题。

一些文章:

关于mysql - 如何使用准备好的语句防止 C 语言中的 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552372/

相关文章:

java - PreparedStatement IN 子句的替代方案?

mysql - datagrip 和 phpmyadmin 上不显示数据库关系线

MySQL 从数据库分组

mysql - Cakephp 查找或条件不工作

c - 读取2个数据串

java - MySQL 的准备语句,以便它会选择包含最高时间戳的行,该列将比给定参数更大?

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 在 CodeIgniter 中检索单行作为 EAV 模型的查询结果

C语言计算器程序问题

c++ - 为什么这显示运行时错误?