钥匙如何受到保护'将它们存储在ENV变量中?

时间:2015-05-26 14:22:15

标签: laravel

我很担心Laravel protects如何使用环境变量。在我看来,黑客可以只查看环境变量或隐藏文件。这比将它存储在默认数组中更好。 Laravel是否对环境变量做了一些事情以使其更安全?或者它只是一种分离不同配置键的方法。

我试着寻找答案,但我发现了一个同样性质的非Laravel问题似乎没有得到很好的答案。

1 个答案:

答案 0 :(得分:7)

配置文件不应存储在源代码管理中。这意味着敏感数据永远不会存储在任何不需要的地方。如果黑客能够访问您的存储库,那么他们将无法访问;你的数据库密码。

此配置文件将在部署时或一次手动(例如ssh)放入项目中以供应用程序访问。

Web服务器重写(apache .htaccess)或NGINX配置将确保永远不能直接访问此配置文件。

如果黑客通过漏洞或其他方法访问您的服务器,他们仍然可以访问配置文件。

安全性是关于拥有多个层,从源代码控制中删除这些敏感数据是其中之一。

在laravel文档的配置部分的底部,它简要地提到了这一点:

  

请务必将.env.local.php文件添加到.gitignore文件中。这个   将允许您团队中的其他开发人员创建自己的本地   环境配置,以及隐藏您的敏感   来自源代码管理的配置项。

     

现在,在生产服务器上,在项目中创建.env.php文件   包含生产相应值的根   环境。与.env.local.php文件一样,生产.env.php   文件永远不应该包含在源代码管理中。