La sicurezza non è un plugin da installare alla fine. È una mentalità, un processo continuo, e soprattutto una responsabilità di chi scrive codice.
Un sito web o un’applicazione, anche ben progettata, può diventare un bersaglio se chi l’ha sviluppata ha sottovalutato alcuni passaggi.
Ecco quindi una checklist aggiornata per il 2025: una guida pratica e concreta per controllare se il tuo codice è davvero pronto per affrontare il mondo esterno, prima del deploy.
1. Input e validazione
Regola base: non fidarti mai dei dati in ingresso, da nessuna fonte.
-
Sanifica tutti gli input (form, query string, API…)
-
Usa whitelist e non blacklist
-
Valida i dati lato server, anche se già validati lato client
-
Evita
eval()oexec()se non strettamente necessario
Tutto ciò che può essere manipolato… sarà manipolato.
2. Autenticazione & gestione sessioni
-
Usa password hashate con algoritmi sicuri (bcrypt, Argon2)
-
Proteggi le sessioni con cookie
HttpOnlyeSecure -
Implementa logout automatico e gestione token (es. JWT)
-
Limita i tentativi di login (rate limiting, captcha)
3. Prevenzione XSS (Cross Site Scripting)
-
Escapa correttamente i dati prima di mostrarli in HTML
-
Non inserire contenuti dinamici non controllati nel DOM
-
Usa
Content-Security-Policyper limitare gli script -
Evita l’uso di
innerHTMLodocument.write()se possibile
4. Prevenzione SQL Injection
-
Usa query parametrizzate o ORM
-
Non concatenare input utente nelle query
-
Valida sempre gli ID numerici e le stringhe
-
Disabilita la visualizzazione degli errori SQL in produzione
5. Gestione degli errori
-
Mostra messaggi generici all’utente finale
-
Logga internamente gli errori dettagliati
-
Non esporre stack trace o percorsi del server
-
Usa un sistema di log centralizzato (ex. Sentry, LogRocket)
6. Sicurezza HTTP & header
-
Usa solo HTTPS con certificato valido
-
Imposta gli header
X-Content-Type-Options,X-Frame-Options,Strict-Transport-Security -
Attiva
SameSite=Strictper i cookie -
Blocca il caricamento di risorse esterne non sicure
7. Permessi, ruoli e autorizzazioni
-
Controlla l’accesso lato server per ogni azione
-
Non basarti solo sul frontend per mostrare/nascondere contenuti
-
Isola le funzionalità per ruolo (admin, user, guest…)
-
Logga le operazioni sensibili (modifica dati, login, export…)
8. Testing di sicurezza
-
Fai un controllo con strumenti come OWASP ZAP o Burp Suite
-
Automatizza test di sicurezza nei CI/CD
-
Verifica dipendenze con
npm audit,composer audit,Snyk,Dependabot -
Aggiorna framework e plugin regolarmente
Checklist pronta all’uso (formato breve)
Area Cosa controllare Input Validazione server-side, no eval()Auth/Session Hash sicuri, cookie protetti, rate limit XSS Escaping, CSP, no innerHTMLSQL Injection Query parametrizzate, disabilita errori SQL Errori Logging interno, messaggi generici HTTP/HTTPS Header di sicurezza, forzare HTTPS Permessi Ruoli, ACL, log per azioni critiche Testing Scanner automatici, audit dipendenze, CI test
Conclusione
La sicurezza del codice non è solo compito del sysadmin o del plugin magico: inizia nel tuo editor, ogni giorno.
Scrivere codice sicuro significa:
-
proteggere gli utenti
-
proteggere la tua azienda
-
dormire meglio la notte
Una checklist come questa può aiutarti a non dimenticare nulla di fondamentale, e a fare un passo in più verso un web più sicuro.
-