Рейтинг:0

Мой файл laravel .env можно загрузить через IP-доступ! Как это решить на сервере litespeed?

флаг cn

привет, я создаю новый проект laravel с сервером Openlitespeed, и я увидел вопиющую проблему безопасности. Я добавил следующее правило в .htaccess корня сайта, и оно отлично работает, останавливаясь, когда кто-то пытается загрузить файл .env с помощью www.mywebsite.com/.env Но, к моему удивлению, можно легко загрузить файл .env, обратившись к IP-адресу сервера, например: 127.0.0.1/.env.

DirectoryIndex index.php
# Отключить список каталогов
Параметры - Индексы

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Параметры -Многовиды -Индексы
    </ЕслиМодуль>

    RewriteEngine включен
    <IfModule mod_ssl.c>
        RewriteCond %{HTTPS} выкл.
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </ЕслиМодуль>

    # Обработка заголовка авторизации
    RewriteCond %{HTTP:Авторизация} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Авторизация}]

    # Перенаправить косую черту в конце, если это не папка...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    Правило перезаписи ^ %1 [L,R=301]

    RewriteCond %{THE_REQUEST} /index\.php/(.+)\sHTTP [NC]
    RewriteRule ^ /%1 [NE,L,R]

    # Отправка запросов на фронт-контроллер...
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    Правило перезаписи ^ index.php [L]

    RewriteCond %{REQUEST_URI} !^/public/
    Правило перезаписи ^ index.php [L]

    #RewriteRule !^(public/|index\.php) [NC,F]

    # заблокировать файлы, которые нужно скрыть // здесь указать расширение файла .example
    <Files ~ "\.(env|json|config.js|md|gitignore|gitattributes|lock)$">
    Порядок разрешить, запретить
    Запретить от всех
    удовлетворить всех
    </файлы>

    # здесь укажите полное имя файла sperator '|'
    <Файлы ~ "(ремесленник)$">
    Порядок разрешить, запретить
    Запретить от всех
    </файлы>

    <Файлы *.php>
    Порядок Запретить, Разрешить
    Запретить от всех
    </файлы>

    <Файлы index.php>
    Заказать Разрешить, Запретить
    Разрешить от всех
    </файлы>
</ЕслиМодуль>

корневая структура проекта laravel такова https://i.stack.imgur.com/xSuaJ.jpg

как мне это решить? У меня есть доступ для редактирования httpd_config.conf

Рейтинг:0
флаг se

https://openlitespeed.org/kb/access-control/#articleTOC_4 приводит примеры, как заблокировать доступ к файлам.

Создайте статический контекст с URI /.env и местоположение $DOC_ROOT/.env и установите его на Нет в Доступном.

Однако корень вашего документа должен быть общественный папку в соответствии с документацией Laravel, если это сделано так, как они предлагают, вам даже не придется беспокоиться о доступе к .env файл, так как он будет на один уровень выше пути, обслуживаемого веб-сервером.

user3416348 avatar
флаг cn
спасибо за подсказку, заставила задуматься! И я пошел разбираться, я неправильно установил laravel на сервер. Сейчас все в порядке! Как вы сказали, мне не нужны правила .htaccess для блокировки доступа к .env, потому что файлы фреймворка находятся на 1 уровень выше корневого каталога.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.