Symfony .env 在生产模式下保护密码
Symfony .env secure passwords in production mode
这对某些人来说可能是个愚蠢的问题,我可能会得到一些反对票,但我需要知道。
如何在 Symfony 4.2 中保护生产模式的密码(敏感信息)?
我以为当我编译 composer dump-env prod
它会被保护并且对 public 不可见但是如果我 运行 phpinfo();
我可以看到我所有的纯文本密码...
DATABASE_URL
MAILER_URL
我应该像以前一样在参数下将它们存储在 services.yaml
中吗?
但是为什么我们还有 .env
文件?
或者一旦 none 可以访问我的服务器的 CLI,我就不应该为此烦恼?
据我所知,在生产环境中存储密码的最常见和最安全的方法是使用环境变量。在 .env 或应用程序存储库中的其他文件中写入密码可能会通过提交 GitHub、代码共享等方式导致意外泄漏
.env文件是制作环境变量的一种简单方法,主要用于本地开发。
在生产环境中,您可以通过 apache/nginx 配置、docker、kubernetes 秘密等方式在主机 and/or 上手动创建环境变量
public 永远不能访问 phpinfo() 或您的环境变量。
这对某些人来说可能是个愚蠢的问题,我可能会得到一些反对票,但我需要知道。
如何在 Symfony 4.2 中保护生产模式的密码(敏感信息)?
我以为当我编译 composer dump-env prod
它会被保护并且对 public 不可见但是如果我 运行 phpinfo();
我可以看到我所有的纯文本密码...
DATABASE_URL
MAILER_URL
我应该像以前一样在参数下将它们存储在 services.yaml
中吗?
但是为什么我们还有 .env
文件?
或者一旦 none 可以访问我的服务器的 CLI,我就不应该为此烦恼?
据我所知,在生产环境中存储密码的最常见和最安全的方法是使用环境变量。在 .env 或应用程序存储库中的其他文件中写入密码可能会通过提交 GitHub、代码共享等方式导致意外泄漏
.env文件是制作环境变量的一种简单方法,主要用于本地开发。
在生产环境中,您可以通过 apache/nginx 配置、docker、kubernetes 秘密等方式在主机 and/or 上手动创建环境变量
public 永远不能访问 phpinfo() 或您的环境变量。