通过Javascript或包含在html标记中访问Github页面机密Api密钥

通过Javascript或包含在html标记中访问Github页面机密Api密钥,javascript,api,github,key,secret-key,Javascript,Api,Github,Key,Secret Key,我已经创建了一个开源项目,这几个星期我一直在缓慢地工作, 我开始研究可以使用的API,并对使用感兴趣 但是他不知道如何使用API密钥,这些密钥应该是保密的 我最初的想法是创建一个配置文件,并将密钥放在其中 但那样的话,它们仍然可以公开获取 这两个问题: & 建议创建Secret ENV变量并以加密格式存储密钥。 我的问题是如何在html中访问或包含该隐藏密钥& 在我的Javascript中,还需要包括以下内容: <link rel="prefetch" href=&

我已经创建了一个开源项目,这几个星期我一直在缓慢地工作,
我开始研究可以使用的API,并对使用
感兴趣
但是他不知道如何使用API密钥,这些密钥应该是保密的

我最初的想法是创建一个配置文件,并将密钥放在其中
但那样的话,它们仍然可以公开获取

这两个问题:
&

建议创建Secret ENV变量并以加密格式存储密钥。
我的问题是如何在html中访问或包含该隐藏密钥&
在我的Javascript中,还需要包括以下内容:

<link rel="prefetch" href="https://www.wikiart.org/en/Api/2/login?accessCode=[]&secretCode=[]"/>

&可能在我的Html或Javascript中还有一些其他地方

我不是100%确定预回迁链接是包含此内容的正确位置,但由于Api将捕获图像数据,这是我第一个想到的初始化位置。这是错误的方法吗

作为第二个问题,WikiArtAPI的文档不是很好,也没有给出任何codez示例。 有人能解释一下下面的意思吗

应用程序启动时创建会话:

将会话密钥添加到您的请求url,例如&authSessionKey=sessionKey


创建会话意味着什么?我只熟悉php会话,不熟悉Api会话。。这是在Html还是Javascript中完成的。。这是我第一次尝试使用任何api,在看了一些之后,如果有人能给出一些代码示例,我将不胜感激,他的fetch()api教程只提供了一个文本文件。不是外部url。

如果您使用的是GitHub页面,那么它只为静态站点提供托管。换句话说,GitHub页面站点只承载HTML和JavaScript,不提供任何后端(服务器端)支持

至于如何在静态站点中安全地使用机密,您不能。由于静态站点中的所有内容都发送到浏览器,而没有服务器端组件,因此没有任何地方可以放置未发送到客户端的机密。为了安全地使用机密,您需要某种后端服务器来保存它们,以便客户端无法看到它们


如果您需要持有机密API密钥或其他机密,您需要创建一个非静态站点,从而将其托管在GitHub页面以外的其他地方。

尽管GitHub说它只用于静态站点,但也有托管动态站点的方法,正如我所看到的其他使用php和node.js的repo,它们以某种方式在GitHub页面上入侵了一个工作动态站点。。无法100%确定如何进行,但必须进一步研究其他回购协议。。如果不可能,那么github本身就没有保存环境变量或密钥的选项。当您将php文件上载到github pages repo时,它会在使用的语言部分将其标记为黑客攻击。GitHub Actions能够使用环境变量和密钥。这些值不会公开给GitHub页面,GitHub页面只能承载静态站点。我知道;我过去经常维护网页。您可以在另一台服务器上有一个后端,这是安全的,但这不能在页面上完成。如果您保留github页面,然后从iframe中的某个位置加载外部后端,会怎么样?两者能相互作用吗?如果iframe设置为允许脚本和顶部导航,那么GitHub操作旨在执行自动化工作流,例如用于运行CI(例如,测试和部署)和定期作业。外部后端可能会工作,但我对iFrame不够熟悉,无法告诉您是否可以。