gpt4 book ai didi

c++ - 如何处理代码中的数据库凭据

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:43 26 4
gpt4 key购买 nike

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

现在,从 C++ 安全地使用数据库的变通方法是只使用 HTTP 客户端库,并让 PHP 脚本之类的东西与您的数据库交互(将您的凭据安全地存储在某个私有(private)的 .ini 文件中在你的服务器上)。这样做的问题是您无法获得像 MySQL++ 这样的库提供的细节,例如查询流和 C++ 到 SQL(和返回)类型的转换。

因此,如果有人对新手程序员有关于如何安全地使用像 MySQL++ 这样的库的建议,如果您愿意分享,我将不胜感激。

最佳答案

我也使用 MySQL++,尽管您必须将连接详细信息提供给 Connection构造函数,没有理由将它们硬编码到您的二进制文件中。

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

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

关于c++ - 如何处理代码中的数据库凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49598596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com