防止API密钥被提交的最佳实践

本文关键字:最佳 提交 API 密钥 防止 | 更新日期: 2023-09-27 18:23:51

我正在开发一个c#程序,该程序从Web服务中检索信息,并使用API密钥进行身份验证。

目前,我在程序中硬编码了这个值,但由于我想将代码保存在公共github存储库中,所以在提交之前,我必须手动删除它

有什么更自动化的方法可以防止我在代码中仍然存在API密钥的情况下意外提交?

我想创建一个脚本,在VisualStudio中使用构建前/构建后命令执行选项来添加秘密。这样,我就不必在代码中保留API密钥,它将在构建后被删除,这样就不会意外地提交它。

防止API密钥被提交的最佳实践

使用配置文件或Windows注册表。

我还建议加密它,在Windows上,您可以使用数据保护API(DPAPI)。Net 2.0+有一个类调用ProtectedData,使用起来非常简单。这样,如果您提交了配置,密钥仍然是加密的,并且只能在您的机器上工作,甚至只能在该机器上为您的用户工作,这取决于您如何确定数据保护的范围。不过,你会想办法让人们输入一个在他们的机器上使用的密钥。

您可以将其添加到web.config中,并设置web配置转换,以便在构建项目时通过选择适当的配置(调试、发布等)来动态更改它。可以使用此选项将关键点替换为伪值。