Le API (Application Programming Interface) sono il sistema nervoso delle applicazioni web moderne: connettono il sito al gestionale, l'app mobile al backend, i form di contatto al CRM, il checkout al gateway di pagamento. Ogni connessione API è anche un potenziale punto di accesso per gli attaccanti — e molte aziende non ne sono consapevoli fino a quando non subiscono una violazione.
Secondo il report Gartner, le API sono diventate il vettore di attacco più frequente per le applicazioni web. Il motivo è strutturale: le API spesso espongono direttamente i dati del database, gestiscono autenticazioni e transazioni, e vengono sviluppate con pressioni sui tempi che lasciano vulnerabilità non risolte.
Le vulnerabilità API più comuni (OWASP API Security Top 10)
OWASP — l'organizzazione di riferimento per la sicurezza delle applicazioni web — ha pubblicato una lista specifica per le API, distinta dall'OWASP Top 10 generale:
- Broken Object Level Authorization (BOLA/IDOR): l'API non verifica che l'utente autenticato abbia il diritto di accedere allo specifico oggetto richiesto. Esempio: cambiando l'ID nell'URL da
/api/ordini/1234a/api/ordini/1235si accede all'ordine di un altro cliente. - Broken Authentication: token deboli, JWT senza scadenza, password senza rate limiting, refresh token non invalidati al logout.
- Excessive Data Exposure: l'API restituisce più dati del necessario (es. l'intera riga del database invece dei soli campi necessari), lasciando al frontend il compito di filtrare — ma i dati sono già stati trasmessi.
- Lack of Rate Limiting: nessun limite alle richieste per IP o utente, abilitando brute force su credenziali, scraping del catalogo o abuso di endpoint costosi.
- Security Misconfiguration: CORS mal configurato, debug mode attivo in produzione, stack trace esposte nelle risposte di errore, metodi HTTP non necessari abilitati.
Best practice per la sicurezza delle API
Autenticazione e autorizzazione
- Usa OAuth 2.0 per l'autorizzazione e OpenID Connect per l'autenticazione su API esposte a terze parti
- Implementa JWT (JSON Web Token) con scadenza breve (15-60 minuti) e refresh token rotanti
- Valida i permessi a livello di oggetto, non solo a livello di endpoint: l'utente A non deve poter accedere ai dati dell'utente B
- Usa chiavi API con scope limitati per le integrazioni machine-to-machine
Protezione degli endpoint
- Rate limiting: limita il numero di richieste per IP, per utente e per endpoint specifico
- Input validation: valida e sanitizza ogni parametro in input — tipo, lunghezza, formato — lato server, mai solo lato client
- HTTPS obbligatorio: nessuna API deve essere accessibile via HTTP non cifrato
- CORS configurato correttamente: definisci esplicitamente i domini autorizzati, mai wildcard (*) su API con dati sensibili
Visibilità e monitoraggio
- Logga tutte le richieste alle API con timestamp, IP, utente, endpoint e response code
- Imposta alerting su pattern anomali: picchi di richieste, errori 401/403 ripetuti, accessi da geografie insolite
- Esegui vulnerability assessment periodici specifici per le API, distinti dagli audit generali del sito
API gateway: il layer di sicurezza centralizzato
Per applicazioni con molti endpoint API, un API gateway centralizza autenticazione, rate limiting, logging e routing in un unico punto di controllo, riducendo la complessità della sicurezza nei singoli microservizi o endpoint. Soluzioni come Kong, AWS API Gateway o Azure API Management sono i riferimenti del settore.
NEO WEB sviluppa web app e integrazioni API seguendo le linee guida OWASP API Security, con revisione della sicurezza integrata nel processo di sviluppo. Se hai dubbi sulla sicurezza delle API del tuo sito o applicazione, contattaci per un'analisi tecnica.