Magento 2: “Server web Anda diatur dengan tidak benar dan memungkinkan akses tidak sah ke file sensitif. Silakan hubungi penyedia hosting Anda ”

18

Lingkungan pengembangan Magento 2 saya mulai menyodok saya dengan pesan kesalahan berikut

Server web Anda disetel secara tidak benar dan memungkinkan akses tidak sah ke file sensitif. Silakan hubungi penyedia hosting Anda

Adakah yang terlacak

  1. Pemeriksaan keamanan apa yang terjadi?
  2. Di mana dalam kode inti cek ini terjadi?
Alan Storm
sumber
tolong beri tahu saya versi 2 mana yang sudah Anda gunakan
Amit Bera
@AmitBera Dengan masing-masing paket menjadi repositori komposer, saya tidak begitu yakin bagaimana memeriksanya
Alan Storm
1
@AlanStorm, pesan ini berasal dari Magento\AdminNotification\Model\System\Message\Securitykelas. situasi mana Anda mendapat pesan ini?
Bojjaiah
@magentotwo Ketika saya masuk ke backend
Alan Storm

Jawaban:

12

Pemeriksaan ini mengatakan bahwa siapa pun dapat mengakses app/etc/*file. Misalnya app/etc/env.phpfile yang menyimpan kredensial ke DB, kunci crypt, dan sumber daya lainnya.

Solusi yang lebih baik adalah mengonfigurasi pubfolder Anda sebagai root web alih-alih direktori instalasi default, biasanya magento2, sebagaimana ditentukan di sebagian besar instal dokumen. Ini akan meningkatkan keamanan secara keseluruhan dan memperbaiki masalah Anda. Pastikan untuk mengedit definisi lokasi Apache / Nginx Anda yang lain juga. Untuk Nginx, $MAGE_ROOTarahan harus /var/www/example.com/magento2/pub, dan demikian juga rootarahan Anda . Pastikan untuk membersihkan cache Anda setelah melakukan perubahan juga, jika tidak gambar dan file css akan rusak (System -> Tools -> Cache Management -> Flush Magento Cache).

\Magento\AdminNotification\Model\System\Message\Securitybertanggung jawab atas fungsi ini. Lihat _isFileAccessiblemetodenya.

Pasti akan mengambil risiko toko Magento.

KAndy
sumber
3

Jika Anda menggunakan Apache, pastikan bahwa .htaccessfile yang disertakan dengan magento di /app/folder ada di server web Anda, dan bahwa Apache dikonfigurasi untuk menggunakan file .htaccess untuk mengganti pengaturan per folder, tetapi ini harus diaktifkan secara default.

Konten file ini seharusnya:

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

Ini adalah pesan sistem dan pesan ini berasal dari getText() metode, kelas Magento\AdminNotification\Model\System\Message\Security.

Ketika kami membuka panel Admin controller memeriksa semua notifikasi dan itu terkait keamanan.

Anda dapat men-debug dari execute()metode di Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.

Bojjaiah
sumber
Informasi yang berguna, tetapi bukan yang saya minta. Beberapa kode di Magento jelas menjalankan beberapa pengujian sistem dan menambahkan pesan itu. Saya ingin tahu di mana tes sistem tersebut berada.
Alan Storm
1

Server MAGENTO 2 Centos 7

Untuk memperbaiki pesan "Server web Anda diatur dengan tidak benar dan memungkinkan akses tidak sah ke file sensitif. Silakan hubungi penyedia hosting Anda".

1) ### shh- Jalankan perintah berikut dari akun root Anda. ###

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

2) ### ssh - Jalankan perintah berikut dari pengguna akun domain (bukan akun server web Anda seperti apache dll). ###

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 - Jalankan perintah berikut dari akun root Anda. ###

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

Ini akan memperbaiki kesalahan ini dan banyak kesalahan lainnya. Catatan: menonaktifkan SUPHP saat menggunakan magento 2, Anda akan menghemat banyak sakit kepala. Saat ini saya sedang menjalankan mod_mpm_event dengan ea-apache24-mod_cgid dan PHP 7 dan ea-php70-php-fpm.

Saya menjalankan 2 magento saya hanya dengan mod_mpm_event dengan ea-apache24-mod_cgid dan PHP 7 sebelum saya menambahkan PHP-FPM.

Jika Anda menjalankan cpanel / apache dan Anda tidak ingin menggunakan easyapache untuk pindah ke mod_mpm_event + ea-apache24-mod_cgid Anda dapat menggunakan shell dari ssh. Jalankan perintah di bawah dari ssh. yum shell hapus ea-apache24-mod_mpm_worker hapus ea-apache24-mod_cgi instal ea-apache24-mod_mpm_event install ea-apache24-mod_cgid jalankan berhenti

willy alejo
sumber
itu hanya akan bekerja pada beberapa lingkungan hosting .. bisa jadi ide yang sangat buruk pada orang lain
Andy
1

Dalam kasus saya masalahnya disebabkan oleh kenyataan bahwa tampilan defaulttoko dinonaktifkan. Ketika pemeriksaan keamanan dilakukan, Magento\AdminNotification\Model\System\Message\Securitykelas mencoba mengunduh app/etc/config.phpfile, sebuah pengecualian dilempar ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), yang mengubah kode respons menjadi 200 (biasanya menghasilkan 404). Jadi sistem berpikir bahwa file tersebut dapat diakses, yang berarti masalah keamanan.

Cukup aktifkan tampilan defaulttoko untuk memperbaikinya.

Zsolti
sumber
1

Salah satu solusi mudah adalah, jika Anda tidak menggunakan nginx, daripada mengganti nama file nginx.conf menjadi 'nginx.conf.sample' di direktori root dari instalasi magento Anda. Ini berhasil untuk saya, dan pesan peringatan hilang di Magento Admin.

Sanaullah Ahmad
sumber
0

Ini masalah direktori dan file izin saya pikir. Tolong beri izin yang tepat seperti 0755 ke direktori 0644 ke file, jika itu tidak menyelesaikan masalah, periksa juga file .htaccess.

Suyog
sumber
informasi yang bermanfaat, tetapi bukan informasi yang saya minta. Saya ingin tahu di mana dalam basis kode inti Magento cek ini terjadi.
Alan Storm
0

Tes-tes ini hadir di dalam kelas Magento\AdminNotification\Model\System\Message\Securitydan dari mana teks pemberitahuan berasal function getText(). Saya pikir Magento memeriksa aksesibilitas app/etc/*file dan berdasarkan yang menunjukkan peringatan di panel admin.

Sarvagya
sumber