在开源项目中存储 OAuth 机密

Storing OAuth secret in the open-source project

本文关键字:OAuth 机密 存储 开源 项目      更新时间:2023-10-16

我在桌面应用程序中使用 Dropbox OAuth 上传文件。但是,我的应用程序是开源的,因此我不知道如何存储应用程序机密。如果我不隐藏它,任何其他程序都将能够使用我的应用标识。

我可以包含带有密钥的单独头文件 (C++),并且不在我的源代码中分发此标头,但是,在我看来,这样的存储库看起来有点不足(如果我错了,请纠正我)。

有什么建议吗?

我认为这里要做的典型事情是从您的源中省略应用程序密钥和机密,并向用户提供有关如何通过 Dropbox 网站创建自己的应用程序密钥和机密的说明。

我认为你一针见血 - 将你的软件共享为FOSS的本质意味着任何人都可以复制你程序功能的任何部分;这也意味着任何人都可以设计软件来模拟程序的任何方面。 这绝不是一件坏事;这就是开源的本质。

如果你有选择地隐藏你的应用机密,你所做的只是阻止其他人构建你的源代码,并获得与你构建源代码时相同的结果。 这与IMO的开源原则几乎背道而驰。

如果问题是由于机密泄露而导致某些市场上的应用删除风险,那么一种解决方案是在构建时为每个单独的构建生成一个新的应用机密 - 尽管这远非理想。