Magento 2: „Ihr Webserver ist falsch eingerichtet und ermöglicht unbefugten Zugriff auf vertrauliche Dateien. Bitte wenden Sie sich an Ihren Hosting-Anbieter. ”

18

Meine Magento 2-Entwicklungsumgebung hat mich mit der folgenden Fehlermeldung angestachelt

Ihr Webserver ist nicht ordnungsgemäß eingerichtet und ermöglicht den unbefugten Zugriff auf vertrauliche Dateien. Bitte wenden Sie sich an Ihren Hosting-Provider

Hat jemand aufgespürt

  1. Welche Sicherheitsüberprüfungen finden statt?
  2. Wo im Kerncode finden diese Überprüfungen statt?
Alan Storm
quelle
Können Sie mir bitte sagen, welche Version von 2 Sie verwenden
Amit Bera
@AmitBera Da es sich bei den einzelnen Paketen um Komponisten-Repositorys handelt, bin ich mir nicht sicher, wie ich das überprüfen soll
Alan Storm
1
@AlanStorm, diese Nachricht kam aus der Magento\AdminNotification\Model\System\Message\SecurityKlasse. In welcher Situation haben Sie diese Nachricht erhalten?
Bojjaiah
@magentotwo Als ich mich im Backend anmeldete
Alan Storm

Antworten:

12

Diese Prüfung besagt, dass jeder auf app/etc/*Dateien zugreifen kann . Zum Beispiel die app/etc/env.phpDatei, in der Anmeldeinformationen für die Datenbank, den Kryptoschlüssel und andere Ressourcen gespeichert sind.

Die bessere Lösung besteht darin, Ihren pubOrdner als Webstamm anstatt des Standardinstallationsverzeichnisses zu konfigurieren magento2, wie in den meisten Installationsdokumenten angegeben. Dies verbessert die allgemeine Sicherheit und behebt Ihr Problem. Stellen Sie sicher, dass Sie auch Ihre anderen Apache / Nginx-Standortdefinitionen bearbeiten. Für Nginx $MAGE_ROOTsollte dies die Direktive sein /var/www/example.com/magento2/pub, ebenso wie Ihre rootDirektive. Stellen Sie sicher, dass Sie Ihren Cache leeren, nachdem Sie die Änderung vorgenommen haben, da sonst Bilder und CSS-Dateien beschädigt werden (System -> Tools -> Cache-Verwaltung -> Magento-Cache leeren).

\Magento\AdminNotification\Model\System\Message\Securityist verantwortlich für diese Funktionalität. Siehe die _isFileAccessibleMethode.

Es wird sicher Magento Store riskieren.

KAndy
quelle
3

Wenn Sie Apache verwenden, stellen Sie sicher, dass die .htaccessDatei, die in magento im /app/Ordner enthalten ist, auf Ihrem Webserver vorhanden ist und dass Apache so konfiguriert ist, dass .htaccess-Dateien zum Überschreiben der Einstellungen pro Ordner verwendet werden. Dies sollte jedoch standardmäßig aktiviert sein.

Der Inhalt dieser Datei soll sein:

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

Es handelt sich um eine Systemnachricht, die von der getText() Methode class stammt Magento\AdminNotification\Model\System\Message\Security.

Wenn wir den Admin-Bereich öffnen, überprüft der Controller alle Benachrichtigungen und die damit verbundene Sicherheit.

Sie können von der execute()Methode in debuggen Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.

Bojjaiah
quelle
Nützliche Informationen, aber nicht das, wonach ich gefragt habe. Einige Codes in Magento führten eindeutig einige Systemtests durch und fügten diese Meldung hinzu. Ich möchte wissen, wo diese Systemtests sind.
Alan Storm
1

MAGENTO 2 Centos 7 Server

So beheben Sie die Meldung "Ihr Webserver ist nicht ordnungsgemäß eingerichtet und ermöglicht den unbefugten Zugriff auf vertrauliche Dateien. Wenden Sie sich an Ihren Hosting-Anbieter."

1) ### shh- Führen Sie den folgenden Befehl von Ihrem Root-Konto aus. ###

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

2) ### ssh - Führen Sie den folgenden Befehl vom Benutzer des Domänenkontos aus (nicht von Ihrem Webserverkonto wie Apache usw.). ###

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 - Führen Sie den folgenden Befehl von Ihrem Root-Konto aus. ###

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

Dies wird diesen Fehler und viele andere Fehler beheben. Hinweis: Wenn Sie SUPHP in Magento 2 deaktivieren, sparen Sie sich viel Kopfschmerzen. Zur Zeit starte ich mod_mpm_event mit ea-apache24-mod_cgid und PHP 7 und ea-php70-php-fpm.

Ich hatte mein Magento 2 mit nur mod_mpm_event mit ea-apache24-mod_cgid und PHP 7, bevor ich PHP-FPM hinzufügte.

Wenn Sie cpanel / apache ausführen und easyapache nicht verwenden möchten, um nach mod_mpm_event + ea-apache24-mod_cgid zu wechseln, können Sie die Shell von ssh verwenden. Führen Sie den folgenden Befehl von ssh aus. yum shell entfernen ea-apache24-mod_mpm_worker entfernen ea-apache24-mod_cgi installieren ea-apache24-mod_mpm_event installieren ea-apache24-mod_cgid ausführen beenden

Willy Alejo
quelle
Das wird nur auf einigen Hosting-Umgebungen funktionieren.
Andy
1

In meinem Fall wurde das Problem durch die Tatsache verursacht, dass die defaultGeschäftsansicht deaktiviert war. Während die Sicherheitsüberprüfung durchgeführt wurde, hat die Magento\AdminNotification\Model\System\Message\SecurityKlasse versucht, die app/etc/config.phpDatei herunterzuladen , und es wurde eine Ausnahme ausgelöst ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), die den Antwortcode in 200 umwandelte (normalerweise sollte das Ergebnis 404 sein). Das System ging daher davon aus, dass auf die Datei zugegriffen werden kann, was ein Sicherheitsproblem bedeuten würde.

Aktivieren Sie einfach die defaultGeschäftsansicht, um dies zu beheben.

Zsolti
quelle
1

Eine einfache Lösung ist, wenn Sie nicht nginx verwenden, die Datei nginx.conf in 'nginx.conf.sample' im Stammverzeichnis Ihrer Magento-Installation umzubenennen. Dies hat bei mir funktioniert und die Warnmeldung verschwindet in Magento Admin.

Sanaullah Ahmad
quelle
0

Ich denke, es ist ein Problem mit der Berechtigung für Verzeichnisse und Dateien. Bitte geben Sie die richtigen Berechtigungen wie 0755 für Verzeichnisse 0644 für Dateien. Wenn das Problem dadurch nicht behoben wird, überprüfen Sie bitte auch die .htaccess-Datei.

Suyog
quelle
nützliche Informationen, aber nicht die Informationen, nach denen ich gefragt habe. Ich möchte wissen, wo in der Magento-Kerncodebasis diese Überprüfungen stattfinden.
Alan Storm
0

Diese Tests sind in der Klasse vorhanden Magento\AdminNotification\Model\System\Message\Securityund der Benachrichtigungstext stammt von function getText(). Ich denke, Magento prüft die Zugänglichkeit von app/etc/*Dateien und zeigt darauf basierend die Warnung im Admin-Panel an.

Sarvagya
quelle