代码

时间:2018-04-01 13:31:33

标签: c++ mysql++

我正在使用MySQL++ library by Tangentsoft从C ++程序连接到MySQL数据库。您将数据库凭据传递给Connection对象的connect方法以连接到您的数据库。显然,这是非常糟糕的:如果恶意某人会反汇编您的应用程序二进制文件,那么您的系统就会受到损害。

现在,使用C ++安全地处理数据库的解决方法就是使用HTTP客户端库,让PHP脚本与数据库进行交互(将您的凭据安全地存储在某个私有的.ini文件中)在你的服务器上)。这样做的问题在于,你没有像MySQL ++提供的库那样细节,例如查询流和C ++到SQL(和返回)类型转换。

因此,如果有人向新手程序员提供有关如何安全地使用像MySQL ++这样的库的建议,那么如果你愿意分享它们,我会很感激。

1 个答案:

答案 0 :(得分:0)

我也使用MySQL ++,虽然您必须向Connection构造函数提供连接详细信息,但没有理由将这些内容硬编码到您的二进制文件中。

我从磁盘上的/etc/<productname>.conf文件中读取它们,然后将生成的std::string对象传递给构造函数。这样,配置文件的安全性由系统管理员决定。最终,您的应用程序必须知道凭证以某种方式,但您可以免除几乎所有保护它们的责任。至关重要的是,在应用程序本身中嵌入的特定数据库服务器的凭据绝对不会。

无论如何,您必须这样做,除非您希望您的应用程序只使用一个数据库服务器,并且只使用一组不变的凭据。