Eu achei inseguro deixar nossa senha de MySQL digitada diretamente no código. É possível acessar nossa conta de uma maneira que não a exponha?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu achei inseguro deixar nossa senha de MySQL digitada diretamente no código. É possível acessar nossa conta de uma maneira que não a exponha?
Olá! Tudo bem? É uma boa prática deixarmos informações sensíveis da nossa aplicação fora do código, uma das melhores formas de fazer isso é usando variáveis de ambiente, que são variáveis que podemos deixar disponíveis no ambiente que estamos trabalhando, normalmente a nossa máquina. Uma forma bem prática de fazer isso é usando arquivos .env:
# arquivo .env
SENHA_MYSQL=rootEsse tipo de arquivo é um padrão comum, onde armazenamos informações sensíveis e depois carregamos essa informação para o ambiente com o auxílio de bibliotecas, por exemplo a python-dotenv: (Instalação via terminal com pip)
python -m pip install python-dotenv
Com essa biblioteca instalada, você pode acessar as variáveis do .env dessa forma:
import os
from dotenv import load_dotenv
# Carrega as variáveis
load_dotenv()
# Acessa a variável pela biblioteca os (operational system)
senha_mysql = os.environ.get("SENHA_MYSQL")
Depois, basta colocar .env no seu arquivo .gitignore se estiver usando o github para armazenar seu código, para não deixar informações sensíveis na internet. Se preferir, também é possível não usar o arquivo .env, e ao invés disso definir as variáveis no terminal do seu computador:
para Linux
export SENHA_MYSQL=root
para Windows
set SENHA_MYSQL=root
E então acessar diretamente no código, sem precisar da python-dotenv:
import os
# Acessa a variável diretamente
senha_mysql = os.environ.get("SENHA_MYSQL")
O problema dessa abordagem é que as variáveis vão ser armazenadas de forma temporária, então se você fechar o terminal e abrir de novo pode ser que ela não esteja mais disponível, então vai ser preciso usar esse comando todas as vezes que você for usar a aplicação. Porém, essa abordagem é a mais usada em ambiente de produção, onde você pode definir essas variáveis de forma permanente na máquina do servidor com comandos do tipo:
setx SENHA_MYSQL root
O comando setx define variáveis de forma permanente, mas é bom evitar esse tipo de comando se você estiver usando sua máquina pessoal, porque variáveis de ambiente podem causar algumas complicações se não forem definidas com cuidado. Espero ter ajudado!