Magento 2:「Webサーバーのセットアップが正しくないため、機密ファイルへの不正アクセスが許可されます。ホスティングプロバイダーにお問い合わせください」


18

Magento 2開発環境で次のエラーメッセージが表示される

Webサーバーが正しくセットアップされていないため、機密ファイルへの不正アクセスが許可されます。ホスティングプロバイダーにお問い合わせください

誰でも追跡している

  1. どのようなセキュリティチェックが行われていますか?
  2. これらのチェックはコアコードのどこで行われますか?

2
のどの

個々のパッケージされて作曲リポジトリと@AmitBera私は本当にわから確認する方法はないんだもの
アラン・ストーム

1
@AlanStorm、このメッセージはMagento\AdminNotification\Model\System\Message\Securityクラスから来ました。このメッセージを受け取ったのはどのような状況ですか?
ボイジャー

@magentotwoバックエンドにログインしたとき
アランストーム

回答:


12

このチェックは、誰でもapp/etc/*ファイルにアクセスできることを示しています。たとえば、app/etc/env.phpDB、暗号化キー、およびその他のリソースへの資格情報を保存するファイル。

より良い解決策は、ほとんどのインストールドキュメントで指定されているようにpub、通常はデフォルトのインストールディレクトリではなく、Webルートとしてフォルダを構成することです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/app/フォルダー内のmagentoに含まれているファイルがWebサーバーに存在し、Apacheが.htaccessファイルを使用してフォルダーごとの設定をオーバーライドするように構成されていることを確認しますが、これはデフォルトで有効になっている必要があります。

このファイルの内容は次のとおりです。

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

1

これはシステムメッセージであり、このメッセージはgetText() メソッドclass から来ましたMagento\AdminNotification\Model\System\Message\Security

管理パネルを開くと、コントローラーはすべての通知とそれに関連するセキュリティをチェックします。

execute()メソッドからデバッグできますMagento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php


有用な情報ですが、私が尋ねたものではありません。Magentoの一部のコードは、明らかにいくつかのシステムテストを実行し、そのメッセージを追加しました。これらのシステムテストがどこにあるかを知りたいです。
アランストーム

1

MAGENTO 2 Centos 7サーバー

「Webサーバーが正しくセットアップされていないため、機密ファイルへの不正アクセスが許可されています。ホスティングプロバイダーにお問い合わせください」というメッセージを修正するには。

1)### shh- rootアカウントから次のコマンドを実行します。###

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

2)### ssh-ドメインアカウントユーザーから次のコマンドを実行します(ApacheなどのWebサーバーアカウントではありません)。###

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-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

これにより、このエラーと他の多くのエラーが修正されます。注:magento 2の使用時にSUPHPを無効にすると、頭痛の種が大幅に減ります。現在、ea-apache24-mod_cgidとPHP 7およびea-php70-php-fpmでmod_mpm_eventを実行しています。

PHP-FPMを追加する前に、ea-apache24-mod_cgidとPHP 7でmod_mpm_eventだけでmagento 2を実行していました。

cpanel / apacheを実行していて、easyapacheを使用してmod_mpm_event + ea-apache24-mod_cgidに移動したくない場合は、sshからshellを使用できます。sshから次のコマンドを実行します。yum shell remove ea-apache24-mod_mpm_worker remove ea-apache24-mod_cgi install ea-apache24-mod_mpm_event install ea-apache24-mod_cgid run quit


それは一部のホスティング環境でのみ機能します。他の人にとっては本当に悪い考えかもしれません
Andy

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

1つの簡単な解決策は、nginxを使用していない場合、magentoインストールのルートディレクトリにあるnginx.confファイルの名前を「nginx.conf.sample」に変更することです。これは私にとってはうまくいき、Magento Adminでは警告メッセージが消えました。


0

これは、ディレクトリとファイルのアクセス許可の問題だと思います。ディレクトリに0755、ファイルに0644のような適切な許可を与えてください。問題が解決しない場合は、.htaccessファイルも確認してください。


有用な情報ですが、私が求めた情報ではありません。Magentoコアコードベースのどこでこれらのチェックが行われるかを知りたいです。
アランストーム

0

これらのテストはクラス内に存在Magento\AdminNotification\Model\System\Message\Securityし、通知テキストはから来ていfunction getText()ます。magentoはapp/etc/*ファイルのアクセシビリティをチェックし、それに基づいて管理パネルに警告を表示すると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.