Dockerhub公共存储库的项目代码库任何人都可以访问吗?

问题描述 投票:0回答:3

我对容器和docker等的概念还很陌生。假设我有一个简单的Angular Javascript应用程序,它可以进行API调用。如果此应用程序是dockerhub上的映像,是否有人可以访问项目代码?例如,如果标头中包含一些敏感信息(例如订阅密钥),那么有人可以拦截此密钥吗?

javascript angular docker dockerhub
3个回答
0
投票

很有可能将可用。但是,您可以使用.dockerignore文件。

将带有密钥的文件放置在项目中的某个位置,并将其加载到代码中,然后将该文件添加到dockerignore中,您将可以安全地使用它。

这种方法的问题是,您将需要使用每个吊舱中的密钥手动读取文件。


0
投票

由于密钥是基于代码的纯文本形式,因此可以通过正在运行的容器访问该密钥。在构建docker映像时,aou会将文件复制到该映像。在有人将Docker映像作为容器启动后,他可以通过交互式会话访问代码。

要解决此问题,您可以将密钥添加为环境变量。通过使用ˋdocker run -eˋ或ˋdocker run --env-fileˋ。这样,您可以在启动容器时指定密钥,因此更改后的密钥不需要重建整个映像,并且没人能看到您的密钥访问集线器上的打开映像。


0
投票

一方面,任何可以运行Docker映像的人都可以看到该映像的整个文件系统内容,实际上,他们可以轻松地接管整个主机系统。因此,Docker不会帮助您保护第三方API密钥。

另一方面,Angular应用程序本质上将通过网络传输并在最终用户的浏览器中运行。这意味着他们将能够在浏览器的调试工具中查看(最小化的)应用程序源,或者仅使用curl之类的工具自行下载应用程序。

在这种情况下,这意味着将应用程序打包在Docker中并不会真正改变应用程序的安全状态:作为基于浏览器的应用程序,无论您如何将其打包在服务器端,它基本上都是公共的。

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