2017-06-14 35 views
0

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

+1

没有人可以进入,除非你在/公共 – huhu

+0

把所有的东西,如果我从htaccess的删除公众呢? –

+0

https://stackoverflow.com/a/47355544/6517383此答案使用文件权限 –

回答

3

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

您可以作出这样一个测试:

与终端项目目录输入并打这个:

php -t public -S 127.0.0.1:80 

的-t意味着文档根目录,其中PHP内置网络服务器将解释为文档根目录。 - 参见下文:

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

现在尝试访问.env文件,你会看到,你将获得该资源为没有找到404。

当然,这仅仅是一个例子,您需要配置您的服务器才能做到这一点。

2

没有人可以通过浏览器查看这些文件,因为您网站的根位于/public,而composer.json.env文件不在此范围内。

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

0

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

2

您可以添加以下代码到你的.htaccess(请确保您的.htaccess文件应该在根文件夹不公开)文件否认

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

只需添加以下代码.ENV文件的权限到您的.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