Magento 2: «Ваш веб-сервер налаштований неправильно і дозволяє несанкціонований доступ до чутливих файлів. Зверніться до свого постачальника хостингу »


18

Моє середовище розробки Magento 2 почало наводити мені наступне повідомлення про помилку

Ваш веб-сервер налаштований неправильно і дозволяє несанкціонований доступ до чутливих файлів. Зверніться до свого постачальника хостингу

Хтось простежив

  1. Які перевірки безпеки відбуваються?
  2. Де в основному коді відбуваються ці перевірки?

Ви можете, будь ласка, скажіть мені, яку версію ви використовуєте
Amit Bera

@AmitBera Оскільки окремі пакети є композиторськими сховищами, я не дуже впевнений, як це перевірити
Алан Шторм

1
@AlanStorm, це повідомлення надійшло від Magento\AdminNotification\Model\System\Message\Securityкласу. в якій ситуації ви отримали це повідомлення?
Боджая

@magentotwo Коли я увійшов у бекенд
Алан Шторм

Відповіді:


12

Цей чек говорить, що кожен може отримати доступ до app/etc/*файлів. Наприклад, app/etc/env.phpфайл, який зберігає облікові дані в БД, криптовалюті та інших ресурсах.

Краще рішення - налаштувати pubпапку як веб-корінь замість каталогу установки за замовчуванням, як правило magento2, як зазначено в більшості документів встановлення. Це покращить загальну безпеку та вирішить вашу проблему. Не забудьте відредагувати й інші ваші визначення місця розташування Apache / Nginx. Для Nginx ця $MAGE_ROOTдиректива повинна бути /var/www/example.com/magento2/pub, як і ваша rootдиректива. Не забудьте очистити кеш-пам'ять і після внесення змін, інакше зображення та файли css будуть порушені (Система -> Інструменти -> Кеш-менеджмент -> Очистити кеш-Magento).

\Magento\AdminNotification\Model\System\Message\Securityвідповідає за цю функціональність. Дивіться _isFileAccessibleметод.

Це, безумовно, ризикує магазином Magento.


3

Якщо ви використовуєте Apache, переконайтеся, що на вашому веб-сервері присутній .htaccessфайл, який входить із magento у /app/папку, і Apache налаштований на використання файлів .htaccess для зміни параметрів для кожної папки, але це має бути включено за замовчуванням.

Вміст цього файлу повинен бути:

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

1

Це системне повідомлення, і це повідомлення прийшло з getText() методу, класу Magento\AdminNotification\Model\System\Message\Security.

Коли ми відкриваємо панель адміністратора, контролер перевіряє всі сповіщення та пов’язаний із цим захист.

ви можете налагодити з execute()методу в Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.


Корисна інформація, але не те, що я запитав. Якийсь код у Magento чітко провів деякі системні тести і додав це повідомлення. Я хочу знати, де знаходяться ці тести на системи.
Алан Шторм

1

Сервер MAGENTO 2 Centos 7

Щоб виправити повідомлення "Ваш веб-сервер налаштований неправильно і дозволяє несанкціонований доступ до конфіденційних файлів. Зверніться до свого постачальника хостингу".

1) ### shh- Запустіть наступну команду зі свого кореневого облікового запису. ###

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

2) ### ssh - запустіть наступну команду від користувача облікового запису домену (а не вашого облікового запису веб-сервера, такого як apache тощо). ###

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 - запустіть таку команду зі свого кореневого облікового запису. ###

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

Це виправить цю помилку та багато інших помилок. Примітка: відключіть SUPHP при використанні магенто 2, ви збережете себе від головного болю. В даний час я працюю mod_mpm_event з ea-apache24-mod_cgid і PHP 7 і ea-php70-php-fpm.

Перед тим, як я додав PHP-FPM, я працював у magento 2 із просто mod_mpm_event з ea-apache24-mod_cgid та PHP 7.

Якщо ви використовуєте cpanel / apache і не хочете використовувати easyapache для переходу до mod_mpm_event + ea-apache24-mod_cgid, ви можете скористатися оболонкою з ssh. Запустіть команду внизу з ssh. yum shell видалити ea-apache24-mod_mpm_worker видалити ea-apache24-mod_cgi встановити ea-apache24-mod_mpm_event встановити ea-apache24-mod_cgid запустити


що буде працювати лише в деяких хостинг-середовищах.
Енді

1

У моєму випадку проблема була викликана тим, що представлення defaultмагазину було вимкнено. Під час перевірки безпеки Magento\AdminNotification\Model\System\Message\Securityклас намагався завантажити app/etc/config.phpфайл, було викинуто виняток ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), який перетворив код відповіді на 200 (зазвичай це має призвести 404). Тож система подумала, що файл доступний, що означатиме проблему безпеки.

Просто увімкніть defaultперегляд магазину, щоб виправити це.


1

Одне просте рішення - якщо ви не використовуєте nginx, ніж перейменувати файл nginx.conf в 'nginx.conf.sample' у кореневому каталозі установки magento. Це працювало для мене, і попередження повідомлення зникає в Magento Admin.


0

Думаю, це проблема з дозволом каталогів та файлів. Будь ласка, надайте належні дозволи, як-от 0755, для каталогів 0644 у файли, якщо це не вирішує проблему, перевірте також .htaccess файл.


корисна інформація, але не інформація, яку я просив. Хочу знати, де в базовій кодовій базі Magento відбуваються ці перевірки.
Алан Шторм

0

Ці тести присутні у класі, Magento\AdminNotification\Model\System\Message\Securityі цей текст повідомлення надходить function getText(). Я думаю, що magento перевіряє доступність app/etc/*файлів і на основі цього показує попередження на панелі адміністратора.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.