我很担心Laravel protects如何使用环境变量。在我看来,黑客可以只查看环境变量或隐藏文件。这比将它存储在默认数组中更好。 Laravel是否对环境变量做了一些事情以使其更安全?或者它只是一种分离不同配置键的方法。
我试着寻找答案,但我发现了一个同样性质的非Laravel问题似乎没有得到很好的答案。
答案 0 :(得分:7)
配置文件不应存储在源代码管理中。这意味着敏感数据永远不会存储在任何不需要的地方。如果黑客能够访问您的存储库,那么他们将无法访问;你的数据库密码。
此配置文件将在部署时或一次手动(例如ssh)放入项目中以供应用程序访问。
Web服务器重写(apache .htaccess
)或NGINX配置将确保永远不能直接访问此配置文件。
如果黑客通过漏洞或其他方法访问您的服务器,他们仍然可以访问配置文件。
安全性是关于拥有多个层,从源代码控制中删除这些敏感数据是其中之一。
在laravel文档的配置部分的底部,它简要地提到了这一点:
请务必将.env.local.php文件添加到.gitignore文件中。这个 将允许您团队中的其他开发人员创建自己的本地 环境配置,以及隐藏您的敏感 来自源代码管理的配置项。
现在,在生产服务器上,在项目中创建.env.php文件 包含生产相应值的根 环境。与.env.local.php文件一样,生产.env.php 文件永远不应该包含在源代码管理中。