Magento 2: “Il tuo server web è impostato in modo errato e consente l'accesso non autorizzato ai file sensibili. Contatta il tuo provider di hosting "


18

Il mio ambiente di sviluppo Magento 2 ha iniziato a colpirmi con il seguente messaggio di errore

Il tuo server web è impostato in modo errato e consente l'accesso non autorizzato ai file sensibili. Si prega di contattare il proprio provider di hosting

Qualcuno ha rintracciato

  1. Quali controlli di sicurezza stanno accadendo?
  2. Dove nel codice centrale avvengono questi controlli?

puoi per favore dirmi quale versione di 2, hai usato
Amit Bera

@AmitBera Dato che i singoli pacchetti sono repository di compositori, non sono sicuro di come verificarlo
Alan Storm,

1
@AlanStorm, questo messaggio proviene dalla Magento\AdminNotification\Model\System\Message\Securityclasse. quale situazione hai ricevuto questo messaggio?
Bojjaiah,

@magentotwo Quando ho effettuato l'accesso al backend
Alan Storm,

Risposte:


12

Questo controllo indica che chiunque può accedere ai app/etc/*file. Ad esempio il app/etc/env.phpfile che archivia le credenziali nel database, nella chiave di crittografia e in altre risorse.

La soluzione migliore è configurare la pubcartella come root Web anziché come directory di installazione predefinita, in genere magento2, come specificato nella maggior parte dei documenti di installazione. Ciò migliorerà la sicurezza generale e risolverà il problema. Assicurati di modificare anche le altre definizioni di posizione di Apache / Nginx. Per Nginx, la $MAGE_ROOTdirettiva dovrebbe essere /var/www/example.com/magento2/pub, e così dovrebbe essere la tua rootdirettiva. Assicurati di svuotare la cache anche dopo aver apportato la modifica, altrimenti le immagini e i file CSS verranno interrotti (Sistema -> Strumenti -> Gestione cache -> Svuota cache Magento).

\Magento\AdminNotification\Model\System\Message\Securityè responsabile di questa funzionalità. Vedi il _isFileAccessiblemetodo

Sicuramente rischierà il negozio Magento.


3

Se stai usando Apache, assicurati che il .htaccessfile incluso con magento nella /app/cartella sia presente sul tuo server web e che Apache sia configurato per usare i file .htaccess per sovrascrivere le impostazioni per cartella, ma questo dovrebbe essere abilitato di default.

Il contenuto di questo file dovrebbe essere:

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

1

È un messaggio di sistema e questo messaggio proviene dal getText() metodo, dalla classe Magento\AdminNotification\Model\System\Message\Security.

Quando apriamo il pannello di amministrazione, il controller controlla tutte le notifiche e la relativa sicurezza.

puoi eseguire il debug dal execute()metodo in Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.


Informazioni utili, ma non quello che ho chiesto. Alcuni codici in Magento hanno chiaramente eseguito alcuni test di sistema e hanno aggiunto quel messaggio. Voglio sapere dove sono questi test di sistema.
Alan Storm,

1

Server MAGENTO 2 Centos 7

Per correggere il messaggio "Il tuo server web è impostato in modo errato e consente l'accesso non autorizzato ai file sensibili. Contatta il tuo provider di hosting".

1) ### shh- Esegui il seguente comando dal tuo account di root. ###

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

2) ### ssh - Esegui il seguente comando dall'utente dell'account di dominio (non l'account del tuo server web come apache ecc.). ###

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 - Esegui il seguente comando dal tuo account di 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

Questo risolverà questo errore e molti altri errori. Nota: disabilita SUPHP quando usi magento 2, ti risparmierai molto mal di testa. Attualmente sto eseguendo mod_mpm_event con ea-apache24-mod_cgid e PHP 7 e ea-php70-php-fpm.

Ho avuto il mio magento 2 in esecuzione con solo mod_mpm_event con ea-apache24-mod_cgid e PHP 7 prima di aggiungere PHP-FPM.

Se stai eseguendo cpanel / apache e non vuoi usare easyapache per passare a mod_mpm_event + ea-apache24-mod_cgid puoi usare shell da ssh. Esegui il comando qui sotto da ssh. yum shell rimuovi ea-apache24-mod_mpm_worker rimuovi ea-apache24-mod_cgi installa ea-apache24-mod_mpm_event installa ea-apache24-mod_cgid esegui esci


funzionerà solo su alcuni ambienti di hosting .. potrebbe essere una pessima idea per altri
Andy,

1

Nel mio caso il problema è stato causato dal fatto che la defaultvista negozio era disabilitata. Durante il controllo di sicurezza, la Magento\AdminNotification\Model\System\Message\Securityclasse ha tentato di scaricare il app/etc/config.phpfile, è stata generata un'eccezione ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), che ha trasformato il codice di risposta in 200 (normalmente dovrebbe risultare 404). Quindi il sistema ha ritenuto che il file fosse accessibile, il che significherebbe un problema di sicurezza.

Abilita semplicemente la defaultvista negozio per risolvere questo problema.


1

Una soluzione semplice è, se non si utilizza nginx, che rinominare il file nginx.conf in "nginx.conf.sample" nella directory principale dell'installazione di magento. Questo ha funzionato per me e il messaggio di avviso scompare in Magento Admin.


0

Penso che sia un problema di autorizzazione per directory e file. Si prega di fornire le autorizzazioni appropriate come 0755 alle directory 0644 ai file, se non risolve il problema, controllare anche il file .htaccess.


informazioni utili, ma non le informazioni che ho richiesto. Voglio sapere dove nella base di codice di base di Magento avvengono questi controlli.
Alan Storm,

0

Questi test sono presenti all'interno della classe Magento\AdminNotification\Model\System\Message\Securitye proviene il testo di notifica function getText(). Penso che magento controlli l'accessibilità dei app/etc/*file e in base a ciò mostra l'avvertimento nel pannello di amministrazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.