我正在使用laravel 5.4。我有.env和composer.json文件的问题。任何人都可以从任何浏览器访问,任何人都可以看到我的数据库凭据,所以请帮助我保护这些文件。
答案 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上,并在服务器上本地创建。