Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida Sobre As Variáveis de Ambiente

Foi dito que no curso que essas variáveis de ambiente servem para proteger dados de acesso sigilosos da nossa aplicação - como usuário, senha e endereço de IP do banco de dados, porém, no caso mostrado a gente só poderia fazer isso em hospedagens que dão acesso as variáveis de ambiente.

Minha dúvida é: Hospedagens compartilhadas - que são mais baratas e mais comuns para pequenos projetos - dificilmente possuem essa liberdade em configurações mais finas. Neste caso como eu faria para proteger essas configurações?

3 respostas

Elisame, se seu sistema está em uma hospedagem compartilhada, segurança já não é o forte da aplicação. Esse tipo de hospedagem é muito vulnerável. Nesse caso, eu deixaria as credenciais no .env mesmo.

Mas eu pesquisaria se há melhores práticas para esse ambiente. Eu honestamente nunca trabalhei com hospedagem compartilhada, então não sei te dizer como geralmente esse problema é resolvido no mundo real.

Tenho essa dúvida, porque meus projetos na maioria são mais pessoais para que eu estude, e essa questão de segurança passou a ser algo mais importante a medida que fui aprofundando em PHP - não é nenhuma neurose rs, mas é algo importante

Sobre esse arquivo .env, eu enviaria ele ao servidor, e lá ele guardaria as credencias de banco de dados, por exemplo? Em outro curso de PHP MVC que fiz em outra plataforma, o instrutor dizia que bastava colocar o arquivo de credencias - *.php por exemplo - na raiz da hospedagem, e fazer o caminho absoluto subindo de nível, exemplo, DadosAcesso.php

DadosAcesso.php no projeto:

require('../../../../../../DadosAcesso.php')

E na raiz do servidor, ficaria o arquivo original de DadosAcesso.php contendo os dados de acesso ao banco de dados e API's, e etc.

A minha principal dúvida a esse modelo é: Isso é viável e "seguro" até que ponto? É uma boa maneira de contornar esse problema com hospedagens compartilhadas?

solução!

O .env já fica fora da public, então esses 2 métodos são igualmente seguros. Ter um .php ao invés de .env só diminui um trabalho já que arquivos .php já possuem uma regra no servidor web, enquanto o .env se fosse acessado pelo servidor web, poderia ser disponibilizado como texto. Mas estando fora da pasta public, teoricamente esse risco é mitigado.