Consapevolezza di base sulla sicurezza
Le cinque regole non negoziabili che ogni ingegnere deve rispettare
⏱ Stima ~5 min
01 · Leggi
Non devi essere un esperto di sicurezza. Ma devi assolutamente evitare gli errori che causano la maggior parte degli incidenti di sicurezza.
La verità è che la maggior parte degli incidenti di sicurezza non è causata da hacker sofisticati. È causata da ingegneri che dimenticano le basi: password nel codice sorgente, input dell'utente non validato, endpoint HTTP dove dovrebbe esserci HTTPS.
Queste cinque regole ti tengono fuori dai guai. Non sono opzionali — sono il requisito minimo per scrivere codice di cui gli altri si possano fidare.
02 · Leggi
Memorizza queste cinque regole. Coprono la maggior parte degli errori di sicurezza che commettono gli ingegneri junior.
Punti chiave
- Non committare mai segreti: API key, password, token → .env + .gitignore
- Non fidarti mai dell'input dell'utente: qualsiasi cosa venga da un form o da una URL va sanitizzata prima dell'uso
- Usa sempre HTTPS: nessuna app reale usa HTTP — i dati in transito devono essere cifrati
- Tieni aggiornate le dipendenze: esegui npm audit regolarmente per trovare vulnerabilità note
- Non loggare dati sensibili: mai console.log(password) o token nei log di produzione
03 · Leggi
Hai appena ricevuto un'app da revisionare prima della messa in produzione. Vediamo quante violazioni di sicurezza riesci a trovare usando cat e grep.
04 · Pratica nel terminale
Prima leggi tutto il codice sorgente. Cerca qualsiasi cosa che violi le cinque regole di sicurezza che hai appena imparato.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
05 · Pratica nel terminale
Ora usa grep per trovare in una sola volta tutte le possibili violazioni di sicurezza — qualsiasi cosa che assomigli a password, segreti, key.
(Questa sezione è interattiva — attiva JavaScript per usarla.)
06 · Esempio di codice
Ecco come appare la versione corretta. Confrontala con quello che hai visto — ogni violazione di sicurezza è stata gestita.
app.js — problemi di sicurezza corretti
require('dotenv').config();
const express = require('express');
const app = express();
// Secrets from .env, not hardcoded
const API_SECRET = process.env.API_SECRET;
app.post('/login', (req, res) => {
// POST body, not URL query string
const { username, password } = req.body;
console.log('Login attempt:', username);
// No password logged! Compare with hashed version in DB
});
app.listen(process.env.PORT || 3000, () => {
console.log('Server running');
// No secrets logged!
});
Le correzioni: (1) i segreti sono stati spostati in .env tramite dotenv, (2) il login usa POST (body) invece di GET (URL), (3) si logga solo lo username — mai la password, (4) nessun confronto con password hardcoded — si usa un sistema di autenticazione appropriato con password hashate, (5) i log di avvio non espongono segreti.
07 · Quiz
Quale di questi non dovrebbe mai essere committato in git?
- package.json
- Il file .env con le API key
- index.html
- README.md
08 · Completa
Per controllare le dipendenze del tuo progetto alla ricerca di vulnerabilità note, esegui npm _____.
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.