隐藏Github页面的api密钥

问题描述 投票:23回答:2

我有一个组织的github页面,我想从第三方api调用数据,我需要一个身份验证令牌。我是否可以在公共回购中没有显示身份验证令牌的情况下发布此github页面?

ajax github authorization github-pages
2个回答
35
投票

简而言之,没有。如果您的GitHub回购是公开的,那么它的所有资产都是公开的。您可以将repo设为私有,如果使用username.github.io约定命名,或者如果它具有gh-pages分支,它仍将在GitHub页面上发布。虽然这是一个选择,但这不一定是正确的做法。

如果你的密钥在你的GitHub页面回购中,它听起来像是用于JavaScript中的客户端API调用。如果是这样,您的身份验证令牌是公开可见的,无论它是在您的公共存储库中还是在客户端文件中发送到浏览器。这通常很好。第三方API可能已根据您网站的域生成了身份验证令牌,并将使用该令牌的呼叫限制为源自您域的网页。否则,他们可能只需要auth令牌来记录请求和监视使用情况。

如果auth令牌真的是私有的,那么您可能需要编写私有服务器端代码来调用第三方API。然后,您的GitHub Pages站点可以为您的服务提供所需的数据。在Web API存在安全问题之前,我必须这样做,但我仍然需要从客户端检索非敏感数据。


2
投票

GitHub Actions应该可以满足您的需求。

您可以使用可视化工作流编辑器或存储库设置添加机密。创建密钥后,GitHub会立即加密该值,您无法再查看或编辑该值。对存储库具有写入权限的任何人都可以在该存储库中创建和使用机密。

但是,GitHub操作目前可在公共测试版中使用,因此在此测试期间应避免使用高价值工作流程和内容。

© www.soinside.com 2019 - 2024. All rights reserved.