Usare le variabili d'ambiente per i segreti
Tenere API key e password fuori dal codice
⏱ Stima ~7 min
01 · Leggi
L'errore che ha fatto perdere milioni di euro a molte aziende: fare commit di API key e password direttamente nel codice sorgente.
Una volta che un segreto entra nella git history, ci rimane per sempre. Anche se lo elimini nel commit successivo, chiunque cloni il repo può trovarlo nella cronologia. I bot scansionano attivamente GitHub alla ricerca di key committate per sbaglio e le sfruttano in pochi minuti.
La soluzione è semplice: variabili d'ambiente. Invece di scrivere i segreti nel codice, li salvi in un file .env che non viene mai committato. Il tuo programma legge i valori a runtime e i tuoi segreti restano al sicuro.
💡 Immagina cosìPensa alle variabili d'ambiente come a una cassaforte in ufficio. Non attacchi le password allo schermo (è come scriverle hardcoded nel codice). Le chiudi nella cassaforte (il file .env) e le tiri fuori quando ne hai bisogno. Di certo non fai fotocopie del contenuto della cassaforte per distribuirle a tutti (committare in git).
02 · Leggi
Hai ereditato un'app Node.js con un problema serio: segreti hardcoded nel codice sorgente. Li troviamo e poi sistemiamo la configurazione per tenerli al sicuro.
03 · Pratica nel terminale
Prima cerca i segreti hardcoded nel codice. Usa grep per trovare qualsiasi cosa che assomigli a una API key o a una password.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
04 · Pratica nel terminale
Ora crea un file .env per salvare i segreti al sicuro. Questo file conterrà i valori reali, e ci assicureremo che non venga mai committato in git.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
05 · Pratica nel terminale
Il passo più critico: aggiungi .env al .gitignore in modo che non venga mai committato. Senza questo, git add . metterebbe i tuoi segreti nel prossimo commit.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
06 · Esempio di codice
Ecco come appare il file app.js sistemato. Invece di valori hardcoded, legge da process.env dopo aver caricato .env.
app.js — con variabili d'ambiente (sistemato)
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 legge dal file .env dopo che dotenv lo ha caricato. || 3000 fornisce un valore di default quando PORT non è impostato — un pattern comune per far funzionare l'app anche senza .env.
07 · Quiz
Perché non devi mai committare il file .env in git?
- Contiene segreti che verrebbero esposti a chiunque cloni il repo
- Renderebbe il repo troppo grande
- Git non supporta i file .env
- I file .env funzionano solo sulla tua macchina locale
08 · Completa
In Node.js con dotenv, accedi a una variabile d'ambiente chiamata API_KEY con process._____.API_KEY.
09 · Lista di controllo
La checklist di sicurezza per le variabili d'ambiente. Questi tre passi devono diventare automatici in ogni tuo progetto.
- .env è elencato nel .gitignore
- Non loggo mai i valori reali dei segreti
- Ho creato un file .env.example con valori segnaposto
Altre lezioni di questo capitolo
⚠ L'esperienza interattiva completa richiede JavaScript. Attivalo e ricarica la pagina.
※ Questo è un progetto educativo indipendente — non è un prodotto ufficiale di Anthropic. Claude™ è un marchio di Anthropic, PBC.