Как скрыть конфигурационные файлы от прямого доступа?
Я использую Laravel для веб-приложения. Загрузил все на производство и узнал, что некоторые из файлов могут быть напрямую доступны по url - адресу-например http://example.com/composer.json
Как избежать этого прямого доступа?
9 ответов
вы используете неправильную конфигурацию веб-сервера. Укажите свой веб-сервер public
каталог и перезапустите его.
на Apache вы можете использовать эти директивы:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
на nginx и, вы должны изменить эту строку:
root /path_to_laravel_project/public;
после этого все файлы Laravel больше не будут доступны из браузера.
Это неверно. composer.json
находится за пределами public
каталог и, следовательно, не должен быть доступен. Это означает, что конфигурация VirtualHost неверна.
пожалуйста, убедитесь, что ваш путь к каталогу заканчивается на /public
.
укажите веб-сервер в общедоступный каталог в корневой папке проекта
project root folder/public
но если у вас нет общих папок, и вы уже указывает на корневую папку, вы можете запретить доступ, написав следующий код в .
<Files ".env">
Order Allow,Deny
Deny from all
Allow from 127.0.0.1
</Files>
В приведенном выше коде, сначала мы отрицаем от всех и разрешаем только от собственного сервера (localhost к серверу), чтобы выполнить, и, следовательно, мы можем защитить его от внешних пользователей.
задайте корень документа как public
каталог, поэтому другие файлы не будут доступны напрямую. Ищите его в своем apache/nginx/??? конфигурационный файл.
Это зависит от веб-сервера, на котором вы работаете. С Apache будет .файлы. htaccess, тогда как в nginx будет решаться в конфигурационном файле сервера.
вы можете запретить файлы .htaccess чересчур.
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
С помощью Apache вы можете создавать .файл htaccess в корневом каталоге проекта Laravel для перезаписи всех запросов в public / directory.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ public/ [L]
</IfModule>
просто создайте пустой
.в PHP
file в каталоге config и напишите сообщение в файле, как вы хотите сообщить пользователю acccessor
ex. доступ к forbindon сервером
укажите веб-сервер в общедоступный каталог и перезапустите его.
для Apache вы можете использовать следующие директивы:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
Также вы можете запретить файлы .htaccess чересчур.
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
для нескольких файлов вы можете добавить тег выше файлов несколько раз.htaccess файлы.