Magento 2: “Su servidor web está configurado incorrectamente y permite el acceso no autorizado a archivos confidenciales. Póngase en contacto con su proveedor de alojamiento "

18

Mi entorno de desarrollo de Magento 2 comenzó a molestarme con el siguiente mensaje de error

Su servidor web está configurado incorrectamente y permite el acceso no autorizado a archivos confidenciales. Por favor contacte a su proveedor de hosting

¿Alguien ha rastreado

  1. ¿Qué controles de seguridad están sucediendo?
  2. ¿En qué parte del código central ocurren estas comprobaciones?
Alan Storm
fuente
¿Puedes decirme qué versión de 2 usas?
Amit Bera
@AmitBera Con los paquetes individuales como repositorios de compositores, no estoy realmente seguro de cómo verificar eso
Alan Storm
1
@AlanStorm, este mensaje vino de la Magento\AdminNotification\Model\System\Message\Securityclase. ¿En qué situación recibiste este mensaje?
Bojjaiah
@magentotwo Cuando inicié sesión en el backend
Alan Storm

Respuestas:

12

Esta verificación dice que cualquiera puede acceder a los app/etc/*archivos. Por ejemplo elapp/etc/env.php archivo que almacena credenciales en DB, clave de cifrado y otros recursos.

La mejor solución es configurar su pubcarpeta como la raíz web en lugar del directorio de instalación predeterminado, generalmente magento2, como se especifica en la mayoría de los documentos de instalación. Esto mejorará la seguridad general y solucionará su problema. Asegúrese de editar también sus otras definiciones de ubicación de Apache / Nginx. Para Nginx, la $MAGE_ROOTdirectiva debería ser /var/www/example.com/magento2/pub, y también tu rootdirectiva. Asegúrese de vaciar su caché después de realizar el cambio, de lo contrario, las imágenes y los archivos CSS se romperán (Sistema -> Herramientas -> Administración de caché -> Vaciar caché de Magento).

\Magento\AdminNotification\Model\System\Message\Securityes responsable de esta funcionalidad. Ver el _isFileAccessiblemétodo

Seguramente arriesgará la tienda Magento.

Kandy
fuente
3

Si está usando Apache, asegúrese de que el .htaccessarchivo que se incluye con magento en la /app/carpeta esté presente en su servidor web, y que Apache esté configurado para usar archivos .htaccess para anular la configuración por carpeta, pero esto debería estar habilitado de manera predeterminada.

Se supone que el contenido de este archivo es:

<IfVersion < 2.4>
    order allow,deny
    deny from all
</IfVersion>
<IfVersion >= 2.4>
    Require all denied
</IfVersion>
Dinomita
fuente
1

Es un mensaje del sistema y este mensaje proviene del getText() método, la clase Magento\AdminNotification\Model\System\Message\Security.

Cuando abrimos el panel de administración, el controlador verifica todas las notificaciones y su seguridad relacionada.

puedes depurar del execute()método en Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.

Bojjaiah
fuente
Información útil, pero no lo que pedí. Algunos códigos en Magento claramente ejecutaron algunas pruebas de sistemas y agregaron ese mensaje. Quiero saber dónde están esas pruebas de sistemas.
Alan Storm
1

Servidor MAGENTO 2 Centos 7

Para corregir el mensaje "Su servidor web está configurado incorrectamente y permite el acceso no autorizado a archivos confidenciales. Póngase en contacto con su proveedor de alojamiento".

1) ### shh- Ejecute el siguiente comando desde su cuenta raíz. ###

chown -R accountuser:accountusergroup /path-to-root-folderl/

2) ### ssh: ejecute el siguiente comando desde el usuario de la cuenta de dominio (no desde la cuenta de su servidor web, como apache, etc.). ###

find . -type d -exec chmod 770 {} \; & find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento

chmod -R g+w /path-to-root-folderl/{pub,var} chmod -R g+w /path-to-root-folderl/{app/etc,vendor} chmod -R g+s pub/static pub/media . find var/generation -type d -exec chmod g+s {} \; find var/session -type d -exec chmod g+s {} \;

3) ### ssh - Ejecute el siguiente comando desde su cuenta raíz. ###

chown -R domain_account_user:webservergroup /path-to-root-folderl/var chown -R domain_account_user:webservergroup /path-to-root-folder/app/etc chown -R domain_account_user:webservergroup /path-to-root-folderl/pub chown -R webserverUSER:webservergroup /path-to-root-folder/var/session

Esto solucionará este error y muchos otros errores. Nota: deshabilite SUPHP cuando use magento 2, se ahorrará mucho dolor de cabeza. Actualmente estoy ejecutando mod_mpm_event con ea-apache24-mod_cgid y PHP 7 y ea-php70-php-fpm.

Tenía mi magento 2 ejecutándose con solo mod_mpm_event con ea-apache24-mod_cgid y PHP 7 antes de agregar PHP-FPM.

Si está ejecutando cpanel / apache y no desea usar easyapache para moverse a mod_mpm_event + ea-apache24-mod_cgid, puede usar shell desde ssh. Ejecute el comando debajo de ssh. yum shell eliminar ea-apache24-mod_mpm_worker eliminar ea-apache24-mod_cgi instalar ea-apache24-mod_mpm_event instalar ea-apache24-mod_cgid ejecutar salir

willy alejo
fuente
eso solo funcionará en algunos entornos de alojamiento ... podría ser una muy mala idea en otros
Andy
1

En mi caso, el problema fue causado por el hecho de que la defaultvista de la tienda estaba deshabilitada. Mientras se realizaba la comprobación de seguridad, la Magento\AdminNotification\Model\System\Message\Securityclase intentó descargar el app/etc/config.phparchivo, se produjo una excepción (Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive ), que transformó el código de respuesta a 200 (normalmente debería dar como resultado 404). Entonces, el sistema pensó que el archivo es accesible, lo que significaría un problema de seguridad.

Simplemente habilite la defaultvista de la tienda para solucionar esto.

Zsolti
fuente
1

Una solución fácil es, si no está usando nginx, cambiar el nombre del archivo nginx.conf a 'nginx.conf.sample' en el directorio raíz de su instalación de magento. Esto funcionó para mí, y el mensaje de advertencia desaparece en Magento Admin.

Sanaullah Ahmad
fuente
0

Es un problema de directorio y permisos de archivos, creo. Otorgue los permisos adecuados, como 0755, a los directorios 0644 a los archivos; si no resuelve el problema, verifique también el archivo .htaccess.

Suyog
fuente
información útil, pero no la información que solicité. Quiero saber en qué parte del código base de Magento se realizan estas comprobaciones.
Alan Storm
0

Estas pruebas están presentes dentro de la clase Magento\AdminNotification\Model\System\Message\Securityy ese texto de notificación proviene function getText(). Creo que magento comprueba la accesibilidad de los app/etc/*archivos y, en función de eso, muestra la advertencia en el panel de administración.

Sarvagya
fuente