Cybersecurity · PHP e Laravel

La checklist pratica di sicurezza Laravel

Di · Ultimo aggiornamento: · lettura gratuita, nessun paywall

La maggior parte delle app Laravel non viene hackerata da zero-day furbi. Viene hackerata per file .env esposti, debug mode lasciato attivo, PHP non patchato e SSH debole. Questa checklist copre prima il lavoro noioso ad alto impatto — server, applicazione, dipendenze, segreti e risposta — con un modo per automatizzare ogni passo.

In questa guida
  1. Cosa hackera davvero le app Laravel
  2. Checklist hardening server
  3. Checklist hardening applicazione
  4. Dipendenze e supply chain
  5. Segreti e protezione dati
  6. Rilevamento, monitoring e risposta
  7. FAQ

Cosa hackera davvero le app Laravel

Classificati per quanto spesso compaiono in incidenti reali, non per quanto siano interessanti:

  1. Output debug esposto. APP_DEBUG=true in produzione espone variabili d'ambiente, credenziali database e percorsi file a chiunque scateni un errore.
  2. .env o .git/ leggibili. Document root malconfigurate che servono dotfile consegnano APP_KEY e credenziali.
  3. PHP, framework o package non patchati con CVE note.
  4. SSH debole: auth password, login root abilitato, nessuna protezione brute-force.
  5. Upload file non sicuri che permettono contenuto eseguibile in percorsi serviti via web.
  6. Injection negli escape hatch: SQL grezzo senza binding, output Blade {!! !!} non escapato.
  7. Pannelli admin senza MFA e senza rate limiting.

Noioso batte furbo: se chiudi queste sette porte, sei avanti rispetto alla stragrande maggioranza dei deploy PHP in produzione.

Checklist hardening server

Checklist hardening applicazione

Dipendenze e supply chain

La tua app è per lo più codice altrui, quindi tratta l'igiene delle dipendenze come controllo di sicurezza di prima classe:

Segreti e protezione dati

Rilevamento, monitoring e risposta

Mettilo in pratica con Cipi

Cipi è la CLI di deploy gratuita e open source citata in tutta questa guida: un comando trasforma un VPS Ubuntu fresco in un server di produzione hardened per Laravel — Nginx, PHP-FPM o Octane, MariaDB o PostgreSQL, queue, scheduler, SSL e deploy Git zero-downtime inclusi.

wget -O - https://cipi.sh/setup.sh | bash

Domande frequenti

Laravel è sicuro di default?

Il framework ha default forti: protezione CSRF, password hashate, protezione SQL injection tramite query builder e output Blade escapato. La maggior parte degli incidenti reali viene da errori di deployment — debug mode attivo, file .env esposti, PHP non patchato, SSH debole — ecco perché l'hardening server conta quanto il codice applicativo.

Qual è l'impostazione di sicurezza Laravel più importante?

APP_DEBUG=false in produzione. Una pagina debug esposta espone variabili d'ambiente, credenziali e percorsi, ed è ancora la breach Laravel auto-inflitta più comune. Verificalo ora, poi automatizza il controllo nella pipeline di deploy.

Con quale frequenza devo aggiornare PHP e le mie dipendenze?

Applica patch di sicurezza appena praticabile — automatizza il rilevamento con composer audit in CI e Renovate o Dependabot per PR di update. Per PHP stesso, usa un meccanismo gestito invece della memoria: Cipi, ad esempio, controlla settimanalmente e applica patch di sicurezza PHP via cipi php upgrade.

Ho bisogno di un WAF per un'app Laravel?

Un WAF è uno strato extra utile, non un sostituto delle basi. Chiudi prima i fondamentali: TLS, software patchato, SSH hardened, input validato, rate limiting. Dopo, un WAF a livello CDN aggiunge defense in depth contro attacchi automatizzati.

Cosa devo fare per primo se sospetto un server compromesso?

Isola la macchina dal traffico, ruota ogni segreto che conteneva (password database, token API, APP_KEY), ripristina l'applicazione su un server pulito da un backup noto buono, e solo dopo indaga il punto di ingresso. Patchare l'host live compromesso e sperare è come gli attaccanti mantengono il foothold.

Continua a leggere