Nessuno conta quante volte lo chiami: rate limiting e abuso di API

Un'interfaccia che non limita quante volte la si può chiamare è una porta senza contatore: serve a forzare le password e, se dietro c'è un'AI a consumo, a prosciugarvi il conto.

7 minSviluppatori, chi espone API o servizi

Cosa portare a casa

Risposta breve

Il rate limiting è il meccanismo che limita quante richieste un utente può fare in un dato tempo. La sua assenza è una vulnerabilità riconosciuta: la classifica OWASP dedicata alle API la elenca come «consumo di risorse senza restrizioni» (API4:2023). Senza un limite, la stessa interfaccia può essere martellata per provare password all'infinito, per estrarre dati in massa o — quando dietro c'è un servizio a pagamento a consumo — per generarvi una bolletta.

Un'API senza limite di chiamate è sfruttabile per forzare login, estrarre dati in massa o generare costi.

Il caso nuovo e sottovalutato: un'API collegata a un servizio AI a consumo, senza limite, è una carta di credito aperta.

Il limite va messo sul server, non nell'app che chiama: chi abusa non usa la vostra app.

Si verifica provando a chiamare ripetutamente e in fretta un'interfaccia, e vedendo se a un certo punto viene rifiutata.

Data Hub

CONSOO

Torna alle guide

Perché un contatore mancante è un rischio

Ogni interfaccia che risponde a richieste — il login, la ricerca, un'API pubblica — può essere chiamata una volta o diecimila. Se nessuno conta, la differenza fra un uso legittimo e un abuso sparisce. Chi vuole forzare una password non la indovina: la prova migliaia di volte al secondo, e se il login non ha un limite, prima o poi ci arriva. Chi vuole i vostri dati non li ruba con un colpo geniale: chiede lo stesso dato per tutti gli identificativi in sequenza, in fretta, finché ha l'archivio. Il limite è ciò che rende questi abusi troppo lenti per valere la pena.

Dove va messo il limite, e dove no

L'errore di posizione
Dove si mette il limiteFunziona?
Nell'app o nel sito che chiama l'APINo: chi abusa non usa la vostra app, chiama l'API direttamente
Solo un messaggio «hai fatto troppe richieste» a schermoNo: è di nuovo interfaccia, si aggira
Sul server, per ogni chiamanteSì: è l'unico punto che l'abusante non controlla
Sul server, con soglie diverse per operazioneMeglio: il login e un'operazione costosa meritano limiti più stretti

La regola è la stessa di tutti i controlli di sicurezza: valgono solo se stanno dove chi abusa non può toccarli, cioè sul server.

La verifica, sul vostro sistema

  1. 01

    Scegliete un'interfaccia sensibile

    Il login è il candidato classico; un'API costosa o collegata a un servizio a consumo è quello che oggi conta di più.

  2. 02

    Chiamatela molte volte in fretta

    Con uno strumento da riga di comando o uno script, ripetete la richiesta molte volte di seguito, sul vostro sistema e con dati di prova.

  3. 03

    Guardate se a un certo punto viene rifiutata

    Un server con rate limiting risponde, oltre una soglia, con un rifiuto dedicato (il codice 429, «troppe richieste»). Se accetta tutto senza mai rifiutare, il limite non c'è.

Risorse collegate utili

Domande frequenti

Un limite troppo stretto non dà fastidio agli utenti veri?

Se tarato male, sì: l'obiettivo è fermare l'abuso senza intralciare l'uso normale. Per questo si usano soglie diverse a seconda dell'operazione — strette sul login e sulle operazioni costose, più larghe sulla navigazione — e si distingue per chiamante. Un limite ben tarato l'utente onesto non lo incontra mai; l'abusante lo incontra subito.

Ho un'API che chiama un servizio AI: come mi proteggo dai costi?

Con più strati: un limite di chiamate per utente e complessivo sul server, un tetto di spesa impostato sul servizio AI stesso quando è disponibile, e un allarme che vi avvisa quando il consumo supera la norma. Il limite ferma l'abuso, il tetto è la rete di sicurezza se il limite fallisce, l'allarme fa sì che ve ne accorgiate in ore, non a fine mese.

Il rate limiting mi protegge da un attacco che vuole farmi cadere il sito?

Aiuta contro gli abusi applicativi, ma un attacco pensato per saturare il sito con traffico enorme (denial of service) si contrasta a un livello diverso, di rete e infrastruttura. Sono difese complementari: il rate limiting è la parte che potete gestire nell'applicazione, ed è la prima da avere.

Avete API esposte, magari collegate a servizi a consumo, senza sapere se sono limitate? Vale la pena verificarlo prima della fattura. Consulenza gratuita.

CONSOO trasforma idee su software, AI e integrazioni in un percorso tecnico chiaro per PMI.

  • 30 minuti, online
  • Nessun impegno
  • Analisi del tuo caso reale
  • Risposta entro 24 ore