Cos'è una chiamata API?

Una chiamata API, o richiesta API, consente a un'applicazione di richiedere dati o servizi da un'altra applicazione. La maggior parte delle applicazioni Web effettua regolarmente chiamate API.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire una chiamata API
  • Comprendere come vengono utilizzate le chiamate API
  • Scoprire come gli autori di attacchi possono utilizzare le chiamate API

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cos'è una chiamata API?

Le interfacce di programmazione delle applicazioni (API) sono un modo per far interagire un programma con un altro. Le chiamate API sono il mezzo con cui interagiscono. Una chiamata API, o richiesta API, è un messaggio inviato a un server che chiede a un'API di fornire un servizio o informazioni.

Se Jan ha molti ospiti a cena, potrebbe chiamare una ditta di catering e chiedere loro di preparare il cibo per la festa. In questo modo risparmia molto tempo e fatica nel preparare il cibo da sola. Allo stesso modo, un'applicazione può "chiamarne" un'altra per ottenere i dati o le funzionalità di cui ha bisogno. In questo modo gli sviluppatori non devono dedicare tempo e sforzi alla creazione di funzionalità applicative integrabili tramite API.

Poiché oggi le API sono integrate in quasi tutte le applicazioni Web, le chiamate API avvengono continuamente dietro le quinte. Supponiamo che qualcuno cerchi i biglietti dell'autobus su un sito Web di viaggi. Il sito Web di viaggi invia una chiamata API ai server delle varie compagnie di autobus e riceve in risposta informazioni sulle corse disponibili e sui loro costi. Dal punto di vista dell'utente, questo processo dovrebbe essere quasi istantaneo.

Dove va una chiamata API?

Le chiamate API viaggiano da un client a un endpoint API. Gli endpoint API sono i punti a cui vanno le chiamate API, nella maggior parte dei casi un'applicazione Web e un server. Un client mobile, ad esempio, genera una chiamata API che va all'endpoint API, un server. Il server riceve la chiamata API, la elabora, esegue la richiesta e invia una risposta.

Quando Jan (dall'esempio sopra) chiama la ditta di catering, lo fa componendo un numero di telefono. Allo stesso modo, le chiamate API sono indirizzate a un URI (uniform resource identifier).

Un URI è un modo standardizzato per identificare una risorsa, proprio come un numero di telefono identifica una linea telefonica. La risorsa identificata potrebbe essere un sito Web, un'applicazione, un server, un contatto e-mail o anche un oggetto del mondo reale.

Per le API Web, in genere l'URI è un URL (Uniform Resource Locator). Un URL è un tipo di URI per identificare posizioni Internet come un sito Web o un server. Un URL deve includere il protocollo a livello di applicazione, come HTTP, utilizzato per raggiungerlo. Gli indirizzi delle pagine Web sono scritti come URL, ad esempio "https://www.cloudflare.com/learning." Anche gli endpoint API sono URL.

La maggior parte delle API Web utilizza HTTP, quindi è incluso nell'URL dell'endpoint API. Ad esempio, l'endpoint API di base di Cloudflare è "https://api.cloudflare.com/client/v4/" (scopri di più). Le chiamate API basate su HTTP utilizzano verbi HTTP (tipi di richieste) come GET, POST e PUT per indicare quale servizio o risorsa necessitano dall'endpoint API.

Come possono essere utilizzate le chiamate API per un attacco?

Come qualsiasi cosa esposta a Internet, le API sono vulnerabili ad attacchi provenienti da diverse fonti. Gli autori di attacchi possono utilizzare le chiamate API in diversi modi per attaccare un'API, tra cui:

  • Attacchi DoS (Denial-of-service) e DDoS (Distributed Denial-of-service): questo tipo di attacco nega il servizio ad altri utenti dell'API. Gli autori di attacchi possono inondare un'API con chiamate API o strutturare le loro chiamate API in modo tale da bloccare il server per molto tempo.
  • Exploit di vulnerabilità: gli autori di attacchi possono provare a inviare chiamate API che sfruttano un difetto nell'API per indurre il server a rivelare dati che non dovrebbe, operare in un modo per cui non è stato progettato o concedere loro un accesso non autorizzato.

Questi attacchi e altri possono avere un impatto negativo su un'organizzazione che fornisce servizi API.

Come proteggere le API da chiamate API non valide

Le seguenti strategie possono aiutare a mantenere sicure le API.

  • Comprendere e monitorare gli endpoint API: mantieni un elenco aggiornato di tutti gli endpoint API in produzione.
  • Verificare i client API: l'autenticazione garantisce che le chiamate API provengano da un client legittimo. Esistono diversi modi per farlo, ma uno dei più efficaci è il mutual TLS, un metodo di autenticazione in cui ogni endpoint API verifica l'altro utilizzando la crittografia con chiavi pubbliche.
  • Convalidare lo schema dell'API: lo schema di un'API è come le sue regole di utilizzo. Se una chiamata API non segue lo schema, potrebbe trattarsi di un tentativo dannoso di sfruttare l'API. La convalida dello schema API aiuta a identificare e bloccare le chiamate API non valide.
  • Utilizzare la mitigazione degli attacchi DDoS: un provider di mitigazione degli attacchi DDoS blocca o assorbe le richieste eccessive in modo che un server non venga sovraccaricato. Cloudflare è uno di questi provider.

Leggi più dettagliatamente la sezione relativa alla sicurezza delle API oppure scopri di più su Cloudflare API Shield, che protegge le API da un'ampia gamma di attacchi.