如何在laravel 5.4中保护.env文件?

时间:2017-06-14 10:53:45

标签: php laravel security laravel-5.4

我正在使用laravel 5.4。我有.env和composer.json文件的问题。任何人都可以从任何浏览器访问,任何人都可以看到我的数据库凭据,所以请帮助我保护这些文件。

5 个答案:

答案 0 :(得分:7)

您可以将以下代码添加到.htaccess(确保您的.htaccess文件应该在根文件夹中不在公共文件中)以拒绝.env文件的权限

  <FilesMatch "^\.env">
    Order allow,deny
    Deny from all
 </FilesMatch>

答案 1 :(得分:5)

请记住,一旦您的服务器配置为将公用文件夹视为文档根目录,没有人可以查看该文件夹下一级的文件,这意味着您的.env文件已受到保护,以及整个申请。 - 这就是公共文件夹存在的原因,安全性。 - 如果将文档根目录设置为公用文件夹,则可以在浏览器中看到的唯一目录是那里的文件夹,如样式和脚本。

你可以这样做一个测试:

使用终端输入项目目录并点击:

php -t public -S 127.0.0.1:80

-t表示文档根目录,PHP内置Web服务器将解释为文档根目录。 - 见下文:

-t <docroot> Specify document root <docroot> for built-in web server.

现在尝试访问.env文件,您将看到404将获得未找到资源的404。

当然这只是一个例子,你需要配置你的服务器来做同样的事情。

答案 2 :(得分:3)

没有人可以通过浏览器查看这些文件,因为您网站的根目录位于composer.json.env和{{1}}文件位于此范围之外。

查看这些文件的唯一方法是实际连接到Web服务器并转到相应的文件夹。

答案 3 :(得分:3)

只需将以下代码添加到.htaccess文件中即可设置.env和composer.json文件的权限。

  <Files .env>
    Order allow,deny
    Deny from all
  </Files>

  <Files composer.json>
    Order allow,deny
    Deny from all
  </Files>

以下用于禁用目录浏览的行

Options All -Indexes

答案 4 :(得分:0)

确保它位于您的.gitignore上,并在服务器上本地创建。