Magento 2: “Seu servidor web está configurado incorretamente e permite acesso não autorizado a arquivos confidenciais. Entre em contato com seu provedor de hospedagem ”


18

Meu ambiente de desenvolvimento Magento 2 começou a me cutucar com a seguinte mensagem de erro

Seu servidor da Web está configurado incorretamente e permite acesso não autorizado a arquivos confidenciais. Entre em contato com seu provedor de hospedagem

Alguém localizou

  1. Quais verificações de segurança estão acontecendo?
  2. Onde no código principal essas verificações ocorrem?

u por favor pode me dizer qual a versão de 2, você tem uso
Amit Bera

@AmitBera Com pacotes individuais sendo repositórios compositor Eu não sou realmente certo como verificar se
Alan Storm

11
@ AlanStorm, esta mensagem veio da Magento\AdminNotification\Model\System\Message\Securityclasse. qual situação você recebeu esta mensagem?
Bojjaiah 12/02

@magentotwo Quando eu entrei no backend
Alan Storm

Respostas:


12

Essa verificação diz que qualquer pessoa pode acessar os app/etc/*arquivos. Por exemplo, o app/etc/env.phparquivo que armazena credenciais no banco de dados, chave de criptografia e outros recursos.

A melhor solução é configurar sua pubpasta como raiz da Web em vez do diretório de instalação padrão, geralmente magento2, conforme especificado na maioria dos documentos de instalação. Isso melhorará a segurança geral e solucionará o problema. Certifique-se de editar suas outras definições de localização do Apache / Nginx também. Para o Nginx, a $MAGE_ROOTdiretiva deve ser /var/www/example.com/magento2/pub, assim como a sua rootdiretiva. Certifique-se de liberar seu cache depois de fazer a alteração também, caso contrário, imagens e arquivos css serão quebrados (Sistema -> Ferramentas -> Gerenciamento de cache -> Flush Magento Cache).

\Magento\AdminNotification\Model\System\Message\Securityé responsável por essa funcionalidade. Veja o _isFileAccessiblemétodo

Certamente arriscará a loja Magento.


3

Se você estiver usando o Apache, verifique se o .htaccessarquivo que está incluído no magento na /app/pasta está presente no servidor da Web e se o Apache está configurado para usar arquivos .htaccess para substituir as configurações por pasta, mas isso deve estar ativado por padrão.

O conteúdo deste arquivo deve ser:

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

1

É uma mensagem do sistema e essa mensagem veio do getText() método, classe Magento\AdminNotification\Model\System\Message\Security.

Quando abrimos o painel do administrador, o controlador verifica todas as notificações e a segurança relacionada.

você pode depurar do execute()método in Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.


Informações úteis, mas não o que pedi. Algum código no Magento executou claramente alguns testes de sistema e adicionou essa mensagem. Eu quero saber onde estão esses testes de sistemas.
Alan Storm

1

Servidor MAGENTO 2 Centos 7

Para corrigir a mensagem "Seu servidor da Web está configurado incorretamente e permite acesso não autorizado a arquivos confidenciais. Entre em contato com o seu provedor de hospedagem".

1) ### shh- Execute o seguinte comando da sua conta root. ###

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

2) ### ssh - Execute o seguinte comando no usuário da conta de domínio (não na sua conta de servidor da web, como apache etc.). ###

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 - Execute o seguinte comando na sua conta 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

Isso corrigirá esse erro e muitos outros erros. Nota: ao desabilitar o SUPHP ao usar o magento 2, você economizará muita dor de cabeça. Atualmente, estou executando o mod_mpm_event com o ea-apache24-mod_cgid e o PHP 7 e o ea-php70-php-fpm.

Eu tinha meu magento 2 rodando apenas com mod_mpm_event com ea-apache24-mod_cgid e PHP 7 antes de adicionar o PHP-FPM.

Se você estiver executando o cpanel / apache e não quiser usar o easyapache para ir para mod_mpm_event + ea-apache24-mod_cgid, use o shell do ssh. Execute o comando abaixo do ssh. yum shell remover ea-apache24-mod_mpm_worker remover ea-apache24-mod_cgi instalar ea-apache24-mod_mpm_event instalar e-apache24-mod_cgid


que só vai funcionar em alguns ambientes de hospedagem .. poderia ser realmente má idéia sobre os outros
Andy

1

No meu caso, o problema foi causado pelo fato de a defaultvisualização da loja estar desativada. Enquanto a verificação de segurança foi feita, a Magento\AdminNotification\Model\System\Message\Securityclasse tentou fazer o download do app/etc/config.phparquivo, uma exceção foi lançada ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), que transformou o código de resposta em 200 (normalmente deve resultar em 404). Portanto, o sistema achou que o arquivo estava acessível, o que significaria um problema de segurança.

Basta ativar a defaultvisualização da loja para corrigir isso.


1

Uma solução fácil é, se você não estiver usando o nginx, renomeie o arquivo nginx.conf para 'nginx.conf.sample' no diretório raiz da instalação do magento. Isso funcionou para mim e a mensagem de aviso desaparece no Magento Admin.


0

É um problema de permissão de diretório e arquivos, eu acho. Por favor, forneça permissões apropriadas como 0755 para os diretórios 0644 para arquivos, se isso não resolver o problema, verifique também o arquivo .htaccess.


informações úteis, mas não as informações solicitadas. Quero saber onde na base de código principal do Magento essas verificações ocorrem.
Alan Storm

0

Esses testes estão presentes dentro da classe Magento\AdminNotification\Model\System\Message\Securitye é originário do texto da notificação function getText(). Eu acho que o magento verifica a acessibilidade dos app/etc/*arquivos e, com base nisso, mostra o aviso no painel de administração.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.