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
- ¿Qué controles de seguridad están sucediendo?
- ¿En qué parte del código central ocurren estas comprobaciones?
Magento\AdminNotification\Model\System\Message\Security
clase. ¿En qué situación recibiste este mensaje?Respuestas:
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
pub
carpeta como la raíz web en lugar del directorio de instalación predeterminado, generalmentemagento2
, 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_ROOT
directiva debería ser/var/www/example.com/magento2/pub
, y también turoot
directiva. 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\Security
es responsable de esta funcionalidad. Ver el_isFileAccessible
métodoSeguramente arriesgará la tienda Magento.
fuente
Si está usando Apache, asegúrese de que el
.htaccess
archivo 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:
fuente
Es un mensaje del sistema y este mensaje proviene del
getText()
método, la claseMagento\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 enMagento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php
.fuente
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. ###
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.). ###
3) ### ssh - Ejecute el siguiente comando desde su cuenta raíz. ###
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
fuente
En mi caso, el problema fue causado por el hecho de que la
default
vista de la tienda estaba deshabilitada. Mientras se realizaba la comprobación de seguridad, laMagento\AdminNotification\Model\System\Message\Security
clase intentó descargar elapp/etc/config.php
archivo, 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
default
vista de la tienda para solucionar esto.fuente
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.
fuente
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.
fuente
Estas pruebas están presentes dentro de la clase
Magento\AdminNotification\Model\System\Message\Security
y ese texto de notificación provienefunction getText()
. Creo que magento comprueba la accesibilidad de losapp/etc/*
archivos y, en función de eso, muestra la advertencia en el panel de administración.fuente