github copilot 泄露 API 密钥?我怎样才能保护我的钥匙?

Abr*_*ham 6 javascript security visual-studio-code

我已经安装并使用 github copilot 一段时间了。在开发 google 地图项目时,我很好奇并要求它在打开密钥的情况下自动完成 API url,并且它列出了包含各种 API 密钥的建议。这让我很担心,因为它会根据 github 上其他人的代码生成代码。

在此输入图像描述

起初我以为这些可能不是功能键,但根据这篇文章我发现这是错误的。

那么,我该如何使用什么方法来保护我的密钥免受此类情况的发生呢?我认为卸载不会有帮助,因为我的存储库已经在 github 上了。

Mos*_*atz 4

保护自己的唯一方法是不要将任何私人信息提交到公共 git 存储库。

您的 Google 地图 API 密钥应存储在环境变量或配置文件中,并且永远不应签入 git。

对于现代应用程序来说,执行此操作的常见方法是在生产中使用环境变量并.env在开发中使用文件(模拟使用环境变量,但实际上将这些变量的内容保存在本地文件中)。几乎每种编程语言都有可用的“dotenv”库。您通常还会创建一个提交到 git 的.env.example文件,其中包含应用程序所需的所有环境变量的示例,但不包含实际的秘密值。

  • 就我个人而言,我会将这个建议扩展到所有公共或私有存储库。私有存储库通常用于商业代码,当您想将代码出售给客户时,您现在会遇到客户可以访问 git 历史记录中的 API 密钥的问题,或者您被迫出售没有 git 历史记录的代码(有些客户可能会坚持要求) (7认同)
  • 抱歉,但这如何防止副驾驶知道您的 API 密钥呢?为了给你提供答案,co-pilot 显然会将你的代码发送到 Github 后端,以便能够提供上下文答案。您的密钥很可能可以通过您的代码 IDE 访问,因此,通过扩展,副驾驶...您必须简单地相信副驾驶不会将其存储在某处或将其用于进一步学习! (2认同)