Magento 2: «Votre serveur Web est mal configuré et permet un accès non autorisé aux fichiers sensibles. Veuillez contacter votre hébergeur »

18

Mon environnement de développement Magento 2 a commencé à me piquer avec le message d'erreur suivant

Votre serveur Web est mal configuré et permet un accès non autorisé aux fichiers sensibles. Veuillez contacter votre hébergeur

Quelqu'un at-il retrouvé

  1. Quels contrôles de sécurité ont lieu?
  2. Où dans le code de base ces vérifications ont-elles lieu?
Alan Storm
la source
pouvez-vous me dire quelle version de 2 vous avez utilisée
Amit Bera
@AmitBera Avec des packages individuels étant des référentiels de compositeur, je ne sais pas vraiment comment vérifier cela
Alan Storm
1
@AlanStorm, ce message est venu de la Magento\AdminNotification\Model\System\Message\Securityclasse. quelle situation avez-vous reçu ce message?
Bojjaiah
@magentotwo Quand je me suis connecté au backend
Alan Storm

Réponses:

12

Cette vérification indique que n'importe qui peut accéder aux app/etc/*fichiers. Par exemple, le app/etc/env.phpfichier qui stocke les informations d'identification dans la base de données, la clé de cryptage et d'autres ressources.

La meilleure solution consiste à configurer votre pubdossier en tant que racine Web au lieu du répertoire d'installation par défaut, généralement magento2, comme spécifié dans la plupart des documents d'installation. Cela améliorera la sécurité globale et résoudra votre problème. Assurez-vous également de modifier vos autres définitions d'emplacement Apache / Nginx. Pour Nginx, la $MAGE_ROOTdirective devrait être /var/www/example.com/magento2/pub, tout comme votre rootdirective. Assurez-vous également de vider votre cache après avoir effectué la modification, sinon les images et les fichiers CSS seront cassés (Système -> Outils -> Gestion du cache -> Vider le cache Magento).

\Magento\AdminNotification\Model\System\Message\Securityest responsable de cette fonctionnalité. Voir la _isFileAccessibleméthode.

Cela risquerait sûrement le magasin Magento.

KAndy
la source
3

Si vous utilisez Apache, assurez-vous que le .htaccessfichier inclus avec magento dans le /app/dossier est présent sur votre serveur Web et qu'Apache est configuré pour utiliser les fichiers .htaccess pour remplacer les paramètres par dossier, mais cela doit être activé par défaut.

Le contenu de ce fichier est censé être:

<IfVersion < 2.4>
    order allow,deny
    deny from all
</IfVersion>
<IfVersion >= 2.4>
    Require all denied
</IfVersion>
Dynomite
la source
1

C'est un message système et ce message provient de la getText() méthode, de la classe Magento\AdminNotification\Model\System\Message\Security.

Lorsque nous ouvrons le panneau d'administration, le contrôleur vérifie toutes les notifications et sa sécurité associée.

vous pouvez déboguer à partir de la execute()méthode dans Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.

Bojjaiah
la source
Des informations utiles, mais pas ce que j'ai demandé. Un certain code dans Magento a clairement exécuté des tests système et ajouté ce message. Je veux savoir où sont ces tests de systèmes.
Alan Storm
1

Serveur MAGENTO 2 Centos 7

Pour corriger le message "Votre serveur Web est mal configuré et permet un accès non autorisé aux fichiers sensibles. Veuillez contacter votre hébergeur".

1) ### shh- Exécutez la commande suivante à partir de votre compte root. ###

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

2) ### ssh - Exécutez la commande suivante à partir de l'utilisateur du compte de domaine (pas votre compte de serveur Web tel qu'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 - Exécutez la commande suivante à partir de votre compte root. ###

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

Cela corrigera cette erreur et de nombreuses autres erreurs. Remarque: désactivez SUPHP lorsque vous utilisez magento 2, vous vous épargnerez beaucoup de maux de tête. Actuellement, j'utilise mod_mpm_event avec ea-apache24-mod_cgid et PHP 7 et ea-php70-php-fpm.

J'ai fait tourner mon magento 2 avec juste mod_mpm_event avec ea-apache24-mod_cgid et PHP 7 avant d'ajouter PHP-FPM.

Si vous exécutez cpanel / apache et que vous ne voulez pas utiliser easyapache pour passer à mod_mpm_event + ea-apache24-mod_cgid, vous pouvez utiliser le shell de ssh. Exécutez la commande ci-dessous depuis ssh. yum shell supprimer ea-apache24-mod_mpm_worker supprimer ea-apache24-mod_cgi installer ea-apache24-mod_mpm_event installer ea-apache24-mod_cgid exécuter quitter

willy alejo
la source
cela ne fonctionnera que sur certains environnements d'hébergement .. pourrait être une très mauvaise idée sur d'autres
Andy
1

Dans mon cas, le problème était dû au fait que la defaultvue du magasin était désactivée. Pendant le contrôle de sécurité, la Magento\AdminNotification\Model\System\Message\Securityclasse a tenté de télécharger le app/etc/config.phpfichier, une exception a été levée ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), qui a transformé le code de réponse en 200 (normalement, il devrait en résulter 404). Le système a donc pensé que le fichier était accessible, ce qui signifierait un problème de sécurité.

Activez simplement la defaultvue du magasin pour résoudre ce problème.

Zsolti
la source
1

Si vous n'utilisez pas nginx, une solution simple consiste à renommer le fichier nginx.conf en 'nginx.conf.sample' dans le répertoire racine de votre installation magento. Cela a fonctionné pour moi et le message d'avertissement disparaît dans Magento Admin.

Sanaullah Ahmad
la source
0

C'est un problème d'autorisation de répertoire et de fichiers, je pense. Veuillez accorder les autorisations appropriées comme 0755 aux répertoires 0644 aux fichiers, si cela ne résout pas le problème, veuillez également vérifier le fichier .htaccess.

Suyog
la source
des informations utiles, mais pas les informations que j'ai demandées. Je veux savoir où dans la base de code de Magento ces vérifications ont lieu.
Alan Storm
0

Ces tests sont présents à l'intérieur de la classe Magento\AdminNotification\Model\System\Message\Securityet proviennent du texte de notification function getText(). Je pense que magento vérifie l'accessibilité des app/etc/*fichiers et, sur cette base, affiche l'avertissement dans le panneau d'administration.

Sarvagya
la source