Файл .ENV виден

Я использую Ларавель 5.1

Недавно я загрузил свой проект на виртуальный хостинг. но когда я просматриваю http://siteAddress.com/local/.env, мой файл .env виден.

Есть ли способ скрыть этот файл или перенаправить людей, если они хотят просматривать сайт с просмотром папок?


person smartrahat    schedule 11.10.2015    source источник
comment
Похоже на отсутствующий файл .htaccess.   -  person Hannes    schedule 11.10.2015
comment
У меня есть файл .htaccess в корне. И это работает. @Ханнес   -  person smartrahat    schedule 12.10.2015


Ответы (4)


Наконец, я скрываю .env и отключаю просмотр индекса папки с именем local. Я создаю .htaccess в папке local.

А вот и код .htaccess

# Disable index view
Options -Indexes

# Hide a specific file
<Files .env>
    Order allow,deny
    Deny from all
</Files>
person smartrahat    schedule 01.01.2016
comment
Теперь просмотрите все остальные файлы, которые вы открыли, сделав это, и добавьте их в свой файл . htaccess, чтобы к ним не было доступа. - person Mike B; 01.01.2016
comment
Хм, у меня не работает. - person trainoasis; 05.04.2021

Пожалуйста, создайте файл .htaccess, где у вас есть файл .env, и напишите код, как показано ниже:

# STRONG HTACCESS PROTECTION
<Files ~ "^.*\.([Ee][Nn][Vv])">
 order allow,deny
 deny from all
 satisfy all
</Files>

Затем попробуйте открыть файл .env по URL-адресу, и он будет недоступен и покажет коды внутри.

Если вы хотите удалить его из github.

Создайте новый файл .gitignore в том же каталоге.

и добавить строку

.env
person Prashant Barve    schedule 22.10.2016
comment
Храбрый. Можете ли вы подтвердить, будет ли это регулярное выражение также работать для захвата файлов .env, например, с именами .env.test или .env.development.local? Если нет, можете ли вы показать мне правильный способ сделать это? Спасибо. ‹Файлы ~ ^.*\.([Ee][Nn][Vv])*\.*› порядок разрешить, запретить запретить всем удовлетворить все ‹/Files› - person regan; 09.02.2021
comment
хм, у меня не работает. Должно ли это быть в рамках какой-либо другой директивы? - person trainoasis; 05.04.2021

Вы можете добавить приведенный ниже код в файл .htaccess, чтобы отключить список каталогов и ограничить доступ к файлу .env:

# Disable Directory listing
Options -Indexes

# block files which needs to be hidden, specify .example extension of the file
<Files ~ "\.(env|json|config.js|md|gitignore|gitattributes|lock)$">
    Order allow,deny
    Deny from all
</Files>
person Kamlesh    schedule 04.05.2019

Файл .env находится за пределами папки public, поэтому он не должен быть виден извне, если сервер настроен на просмотр папки public в качестве корня документа.

Из лучшего ответа:

Помните, что после того, как ваш сервер настроен на просмотр общей папки в качестве корня документа, никто не может просматривать файлы, находящиеся на один уровень ниже этой папки, а это означает, что ваш файл .env уже защищен, как и все ваше приложение. - Вот почему общая папка там, безопасность. - Единственные каталоги, которые вы можете увидеть в своем браузере, если вы установите корневой каталог документа в общую папку, - это папки, которые там находятся, например, стили и скрипты.

https://laracasts.com/discuss/channels/general-discussion/how-do-you-protect-env-file-from-public

Проверьте структуру папок на вашем хостинге и убедитесь, что папка public является корнем документа.

person Glad To Help    schedule 11.10.2015
comment
в моем проекте нет папки public. я перемещаю все файлы из общей папки в корень и перемещаю другие файлы и папки в другую папку с именем local (созданную мной). @Рад помочь - person smartrahat; 11.10.2015
comment
@smartrahat, ты делаешь неправильно. Вы преобразовали корневую папку в общедоступную папку, раскрывающую все конфиденциальные данные. - person manix; 12.10.2015
comment
@manix, я сделал это, чтобы избавиться от /public после адреса моего сайта. есть ли способ защитить их с помощью текущей файловой структуры? - person smartrahat; 12.10.2015
comment
@smartrahat, я боюсь, что вы действительно делаете это неправильно - он не защищен, потому что он не предназначен для использования так, как вы этого хотите. Хотя теоретически, возможно, вы могли бы сделать это с помощью htaccess, на самом деле вам следует либо поговорить с вашим хостом, чтобы помочь вам правильно настроить структуру, либо найти хост, на котором у вас больше контроля над вещами. - person Glad To Help; 12.10.2015
comment
@GladToHelp он не делает это неправильно, ЕСЛИ на виртуальном хостинге, как мне кажется, так оно и есть: вы должны сделать это таким образом, если используете корневой домен, иначе как бы вы указали свой основной домен в подпапку (общедоступную) на Cpanel? Вы не можете. - person trainoasis; 05.04.2021