Usando variáveis de ambiente para segredos
Mantenha chaves de API e senhas fora do seu código
⏱ Estim. ~7 min
01 · Ler
O erro que custou milhões de dólares a empresas: commitar chaves de API e senhas direto no código-fonte.
Uma vez que um segredo entra no histórico do git, fica lá para sempre. Mesmo que você delete no próximo commit, qualquer pessoa que clonar o repositório consegue encontrar no histórico. Bots varrem o GitHub procurando chaves commitadas por engano e exploram em minutos.
A solução é simples: variáveis de ambiente. Em vez de escrever segredos no código, você guarda em um arquivo .env que nunca é commitado. Seu programa lê os valores em tempo de execução, e seus segredos ficam seguros.
💡 Imagine assimPense em variáveis de ambiente como o cofre do escritório. Você não cola a senha na tela (isso é hardcoded no código). Você tranca no cofre (arquivo .env) e tira quando precisa. E claro que você não fotocopia o conteúdo do cofre e distribui para todo mundo (commitar no git).
02 · Ler
Você herdou um app Node.js com um problema sério: segredos hardcoded no código-fonte. Vamos encontrá-los e depois corrigir a configuração para guardar os segredos de forma segura.
03 · Prática de terminal
Primeiro, encontre os segredos hardcoded no código. Use grep para procurar qualquer coisa que pareça uma chave de API ou senha.
(Esta seção é interativa — ative o JavaScript para usar.)
04 · Prática de terminal
Agora crie um arquivo .env para guardar os segredos de forma segura. Esse arquivo guarda os valores reais, e a gente garante que ele nunca seja commitado no git.
(Esta seção é interativa — ative o JavaScript para usar.)
05 · Prática de terminal
O passo mais crítico: adicione .env ao .gitignore para ele nunca ser commitado. Sem isso, git add . vai colocar seus segredos no próximo commit.
(Esta seção é interativa — ative o JavaScript para usar.)
06 · Exemplo de código
Aqui está como fica o app.js corrigido. Em vez de valores hardcoded, ele lê de process.env depois de carregar o .env.
app.js — usando variáveis de ambiente (corrigido)
require('dotenv').config();
const express = require('express');
const app = express();
// Secrets come from .env, not hardcoded
const API_KEY = process.env.API_KEY;
const DB_PASSWORD = process.env.DB_PASSWORD;
const PORT = process.env.PORT || 3000;
console.log('API key loaded:', API_KEY ? 'Yes' : 'No');
// NEVER log the actual key value!
process.env lê do arquivo .env depois que o dotenv carrega. O || 3000 fornece um valor padrão quando PORT não está definido — um padrão comum para deixar seu app rodar mesmo sem .env.
07 · Quiz
Por que nunca commitar um arquivo .env no git?
- Ele contém segredos que ficariam expostos para qualquer um que clonar o repositório
- Deixa o repositório muito grande
- Git não suporta arquivos .env
- Arquivos .env só funcionam na sua máquina local
08 · Preencher
Em Node.js com dotenv, você acessa uma variável de ambiente chamada API_KEY com process._____.API_KEY.
09 · Lista de verificação
Checklist de segurança de variáveis de ambiente. Esses três passos devem virar instinto em todo projeto.
- .env está listado no .gitignore
- Eu nunca registro valores reais de segredos em log
- Eu criei um .env.example com valores placeholder
Outras lições deste capítulo
⚠ A experiência interativa completa precisa de JavaScript. Ative-o e recarregue a página.
※ Este é um projeto educacional independente — não é um produto oficial da Anthropic. Claude™ é uma marca registrada da Anthropic, PBC.