Moje środowisko programistyczne Magento 2 zaczęło szturchać mnie następującym komunikatem o błędzie
Twój serwer internetowy jest nieprawidłowo skonfigurowany i umożliwia nieautoryzowany dostęp do poufnych plików. Skontaktuj się z dostawcą usług hostingowych
Czy ktoś wytropił
- Jakie kontrole bezpieczeństwa mają miejsce?
- Gdzie w głównym kodzie mają miejsce te kontrole?
Magento\AdminNotification\Model\System\Message\Security
klasy. w jakiej sytuacji dostałeś tę wiadomość?Odpowiedzi:
Ta kontrola mówi, że każdy może uzyskać dostęp do
app/etc/*
plików. Na przykładapp/etc/env.php
plik przechowujący dane uwierzytelniające do bazy danych, klucza szyfrowania i innych zasobów.Lepszym rozwiązaniem jest skonfigurowanie
pub
folderu jako katalogu głównego zamiast domyślnego katalogu instalacyjnego, zwyklemagento2
tak, jak określono w większości dokumentów instalacyjnych. Poprawi to ogólne bezpieczeństwo i rozwiąże problem. Edytuj także inne definicje lokalizacji Apache / Nginx. W przypadku Nginx$MAGE_ROOT
dyrektywa powinna być/var/www/example.com/magento2/pub
, podobnie jak twojaroot
dyrektywa. Pamiętaj, aby wyczyścić pamięć podręczną po dokonaniu zmiany, w przeciwnym razie obrazy i pliki css zostaną uszkodzone (System -> Narzędzia -> Zarządzanie pamięcią podręczną -> Opróżnij pamięć podręczną Magento).\Magento\AdminNotification\Model\System\Message\Security
odpowiada za tę funkcjonalność. Zobacz_isFileAccessible
metodę.Z pewnością zaryzykuje sklep Magento.
źródło
Jeśli używasz Apache, upewnij się, że
.htaccess
plik dołączony do magento w/app/
folderze znajduje się na twoim serwerze internetowym i że Apache jest skonfigurowany do używania plików .htaccess w celu zastąpienia ustawień poszczególnych folderów, ale powinno to być domyślnie włączone.Zawartość tego pliku powinna być:
źródło
To komunikat systemowy i ten komunikat pochodzi od
getText()
metody, klasyMagento\AdminNotification\Model\System\Message\Security
.Po otwarciu panelu administracyjnego kontroler sprawdza wszystkie powiadomienia i związane z nimi zabezpieczenia.
możesz debugować z
execute()
metody wMagento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php
.źródło
Serwer MAGENTO 2 Centos 7
Aby naprawić komunikat „Twój serwer WWW jest nieprawidłowo skonfigurowany i umożliwia nieautoryzowany dostęp do poufnych plików. Skontaktuj się z dostawcą hostingu”.
1) ### shh- Uruchom następujące polecenie z konta root. ###
2) ### ssh - Uruchom następujące polecenie od użytkownika konta domeny (nie konta serwera WWW, takiego jak apache itp.). ###
3) ### ssh - Uruchom następujące polecenie z konta root. ###
To naprawi ten błąd i wiele innych błędów. Uwaga: wyłącz SUPHP podczas korzystania z Magento 2, zaoszczędzisz sobie dużo bólu głowy. Obecnie korzystam z mod_mpm_event z ea-apache24-mod_cgid i PHP 7 oraz ea-php70-php-fpm.
Miałem moje Magento 2 działające tylko z mod_mpm_event z ea-apache24-mod_cgid i PHP 7 zanim dodałem PHP-FPM.
Jeśli używasz cpanel / apache i nie chcesz używać easyapache, aby przejść do mod_mpm_event + ea-apache24-mod_cgid, możesz użyć powłoki z ssh. Uruchom komendę poniżej z ssh. mniam shell usuń ea-apache24-mod_mpm_worker usuń ea-apache24-mod_cgi zainstaluj ea-apache24-mod_mpm_event zainstaluj ea-apache24-mod_cgid uruchom zamknij
źródło
W moim przypadku problem był spowodowany tym, że
default
widok sklepu został wyłączony. Podczas przeprowadzania kontroli bezpieczeństwaMagento\AdminNotification\Model\System\Message\Security
klasa próbowała pobraćapp/etc/config.php
plik, zgłoszono wyjątek (Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive
), który przekształcił kod odpowiedzi na 200 (zwykle powinien to wynik 404). System pomyślał więc, że plik jest dostępny, co oznaczałoby problem z bezpieczeństwem.Wystarczy włączyć
default
widok sklepu, aby to naprawić.źródło
Jednym prostym rozwiązaniem jest, jeśli nie używasz nginx, zmień nazwę pliku nginx.conf na „nginx.conf.sample” w katalogu głównym instalacji magento. To zadziałało dla mnie, a komunikat ostrzegawczy zniknął w Administratorze Magento.
źródło
Myślę, że to problem z uprawnieniami do katalogu i plików. Podaj odpowiednie uprawnienia, takie jak 0755, do katalogów 0644 do plików, jeśli to nie rozwiąże problemu, sprawdź również plik .htaccess.
źródło
Testy te są obecne w klasie
Magento\AdminNotification\Model\System\Message\Security
i pochodzi z nich tekst powiadomieniafunction getText()
. Myślę, że magento sprawdza dostępnośćapp/etc/*
plików i na tej podstawie pokazuje ostrzeżenie w panelu administracyjnym.źródło