2015-06-19 4 views
5

Я просто нашел, что Laravel 5 выводят чувствительные данные и могут привести к дальнейшей эксплуатации многих хозяев:Запретить доступ общественности к окр файл

https://www.google.com/search?q=intext%3ADB_PASSWORD+ext%3Aenv&gws_rd=ssl

Я хочу знать способ добиться моего .env файла. Могу ли я использовать ниже код в файле .htaccess для защиты моего файла .env из браузера?

# Protect .env 
<Files .env> 
Order Allow,Deny 
Deny from all 
</Files> 

Будет ли мой выше код в .htaccess работу и защитить свой .env файл?

+2

crap плохо сообщите об этом прямо сейчас –

+1

до тех пор, пока файл .env находится выше уровня из общей папки, я не вижу никакой уязвимости. Единственная проблема заключается в том, что если кто-то создаст другое приложение на дополнительном уровне общей папки или если корень приложения находится внутри какого-либо другого корня домена. .. Также вы можете добавить .env в robots.txt, чтобы Google не индексировал его. Но самое главное - это первый, о котором я упомянул. – astroanu

+1

@Yousef это не проблема, потому что webroot является 'public /', а не корнем проекта. – Amelia

ответ

1

IMHO Лучший способ защитить файл конфигурации от просмотра - выставить его за пределы общедоступного каталога. Защита его через .htaccess может быть обманчивой, если что-то не удастся, ваш файл станет общедоступным.

4

Это не уязвимость, и даже не отдаленная проблема, если кто-то правильно устанавливает Laravel - webroot - это папка , а не корень репозитория/проекта.

Конфигурационные файлы и файлы .env в laravel не содержатся в веб-канале, поэтому вам нужно только обеспечить, чтобы ваш веб-сайт был path/to/project/public.

Предоставленный вами запрос google - это буквально просто группа людей, которые не читали документацию перед установкой Laravel.

0

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

Подводя итог тому, что другие говорили в этой теме. Файл .env является проблемой безопасности, если:

  • Вы установили laravel внутри общедоступного каталога, это может быть public, www или public_html, например. Убедитесь, что общедоступная папка, содержащаяся в установке laravel, является единственной папкой, опубликованной через веб-сервер. В качестве альтернативы вы можете защитить файл .env с помощью .htaccess; но это не настоящее решение.
  • Вы включили режим отладки, и обработчик ошибок отображает режим отладки со всеми переменными среды. Отключите режим отладки или настройте его, чтобы он был включен только для определенных пользователей или ips. Это предотвращает обмен переменных среды на страницах отладки.
Смежные вопросы