php - recientes - ¿Cómo ocultar los archivos de configuración del acceso directo?
quitar acceso rapido windows 10 (7)
Estoy usando Laravel para la aplicación web. Subió todo en producción y descubrió que se puede acceder directamente a algunos de los archivos mediante url; por ejemplo, http://domain.com/composer.json
¿Cómo evitar ese acceso directo?
Con Apache, puede crear un archivo .htaccess en el directorio raíz del proyecto Laravel para reescribir todas las solicitudes en public / directory.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Depende del servidor web que esté ejecutando. Con Apache sería .htaccess archivos mientras que con Nginx se manejaría en el archivo de configuración del servidor.
Dirige el servidor web al directorio público en la carpeta raíz del proyecto
project root folder/public
pero si no tiene la carpeta pública y ya está apuntando a la carpeta raíz, puede denegar el acceso escribiendo el siguiente código en el archivo .htaccess
.
<Files ".env">
Order Allow,Deny
Deny from all
Allow from 127.0.0.1
</Files>
en el código anterior, primero estamos denegando y permitiendo que solo se ejecute el servidor propio (servidor local al servidor) y, por lo tanto, podemos protegerlo de usuarios externos.
Eso es incorrecto. composer.json
encuentra fuera del directorio public
y, por lo tanto, no debería ser accesible. Esto significa que su configuración VirtualHost es incorrecta.
Asegúrate de que tu ruta a tu directorio finaliza con /public
.
Establezca la raíz del documento como directorio public
, para que otros archivos no sean accesibles directamente. Búscalo en Your apache / nginx / ??? Archivos de configuración.
También puedes negar archivos en .htaccess.
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
Estás utilizando una configuración de servidor web incorrecta. Dirige tu servidor web a un directorio public
y reinícialo.
Para Apache puede usar estas directivas:
DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">
Para nginx , debes cambiar esta línea:
root /path_to_laravel_project/public;
Después de hacerlo, ya no se podrá acceder a todos los archivos de Laravel desde el navegador.