防止 SQL 注入 C++

Prevent SQL injection C++

提问人:Ryan O'Connor 提问时间:3/28/2021 最后编辑:Daniel A. WhiteRyan O'Connor 更新时间:3/28/2021 访问量:1306

问:

bool run_query(sqlite3* db, const std::string& sql, std::vector< user_record >& records)
    {
    
      // clear any prior results
      records.clear();
    
      char* error_message;
      if(sqlite3_exec(db, sql.c_str(), callback, &records, &error_message) != SQLITE_OK)
      {
        std::cout << "Data failed to be queried from USERS table. ERROR = " << error_message << std::endl;
        sqlite3_free(error_message);
        return false;
      }
    
      return true;
    }

如果存在可疑的SQL注入,如何修复此方法失败并显示错误?

C++ SQL SQLite SQL注入

评论

1赞 Daniel A. White 3/28/2021
这回答了你的问题吗?C++ 和 SQLite - 如何执行由用户输入形成的查询?
1赞 Remy Lebeau 3/29/2021
此代码显示此类错误的唯一方法是,如果它手动解析字符串以查看它实际执行的操作,查找可疑的攻击媒介、多个语句等。否则,不要一开始就盲目地运行这样的 SQL 字符串,而是使用预处理语句,这些语句不会受到注入攻击。sql

答: 暂无答案