Puncte:0

Fișierul meu laravel .env poate fi descărcat prin acces ip! Cum se rezolvă acest lucru pe serverul litespeed?

drapel cn

salut, creez un nou proiect laravel cu serverul Openlitespeed și am văzut o problemă de securitate flagrantă. Am adăugat următoarea regulă la .htaccess al rădăcinii site-ului și funcționează bine, oprindu-se când cineva încearcă să descarce fișierul .env prin www.mywebsite.com/.env Dar spre surprinderea mea, este posibil să descărcați fișierul .env cu ușurință accesând IP-ul serverului, de exemplu: 127.0.0.1/.env

DirectoryIndex index.php
# Dezactivează listarea directorului
Opțiuni -Indici

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Opțiuni -MultiViews -Indexuri
    </IfModule>

    RewriteEngine Pornit
    <IfModule mod_ssl.c>
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>

    # Gestionare antet de autorizare
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirecționați barele oblice de sfârșit dacă nu sunt un folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

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

    # Trimite cereri către controlerul frontal...
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^ index.php [L]

    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^ index.php [L]

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

    # blocați fișierele care trebuie ascunse // aici specificați extensia .example a fișierului
    <Fișiere ~ "\.(env|json|config.js|md|gitignore|gitattributes|lock)$">
    Comanda permite, refuza
    Negați de la toți
    satisface pe toate
    </Fișiere>

    # aici specificați numele complet al fișierului sperator '|'
    <Fișiere ~ "(artizanat)$">
    Comanda permite, refuza
    Negați de la toți
    </Fișiere>

    <Fișiere *.php>
    Comanda Respinge, Permite
    Negați de la toți
    </Fișiere>

    <Fișiere index.php>
    Comanda Permite, Refuza
    Permite de la toți
    </Fișiere>
</IfModule>

structura rădăcină a proiectului laravel este aceasta https://i.stack.imgur.com/xSuaJ.jpg

cum rezolv asta? Am acces pentru a edita httpd_config.conf

Puncte:0
drapel se

https://openlitespeed.org/kb/access-control/#articleTOC_4 oferă exemple cum să blochezi accesul la fișiere.

Creați un context static cu URI /.env iar Locația fiind $DOC_ROOT/.env și setați-l la Nu în Accesibil.

Cu toate acestea, rădăcina documentului dvs. ar trebui să fie public folder conform documentației Laravel, dacă se face așa cum sugerează ei, nici nu ar trebui să vă faceți griji cu privire la accesarea .env fișier, deoarece va fi cu un nivel deasupra căii servite de serverul web.

user3416348 avatar
drapel cn
multumesc pentru pont, m-a pus pe ganduri! Și m-am dus să investighez, am instalat greșit laravel pe server. Acum e ok! După cum ați spus, nu am nevoie de reguli .htaccess pentru a bloca accesul la .env, deoarece fișierele cadru sunt cu 1 nivel deasupra directorului rădăcină

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.