O que é uma chamada de API?

Uma chamada de API, ou solicitação de API, permite que um aplicativo solicite dados ou serviços de outro aplicativo. A maioria dos aplicativos web faz chamadas de API regularmente.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir chamada API
  • Entender como as chamadas API são utilizadas
  • Saber como os invasores podem usar chamadas API

Copiar o link do artigo

O que é uma chamada de API?

As interfaces de programação de aplicativos (APIs) são uma maneira de um programa interagir com outro. As chamadas de API são o meio pelo qual eles interagem. Uma chamada de API, ou solicitação de API, é uma mensagem enviada a um servidor solicitando que uma API forneça um serviço ou informação.

Se a Jan está recebendo muitos convidados para o jantar, ela pode ligar para uma empresa de bufê e pedir que preparem comida para a festa. Isso economiza muito tempo e esforço para ela mesma preparar a comida. Da mesma forma, um aplicativo pode "chamar" outro para obter dados ou funcionalidades necessárias. Isso garante que os desenvolvedores não precisem gastar tempo e esforço criando recursos de aplicativos que podem ser integrados via API.

Como as APIs são integradas a quase todos os aplicativos web hoje, as chamadas de API ocorrem nos bastidores o tempo todo. Suponha que alguém pesquise passagens de ônibus em um site de viagens. O site de viagens envia uma chamada de API para os servidores das várias empresas de ônibus e recebe de volta informações sobre quais passeios estão disponíveis e quanto custam. Do ponto de vista do usuário, esse processo deve ser quase instantâneo.

Para onde vai uma chamada API?

As chamadas de API viajam de um cliente para um endpoint de API. Os endpoints da API são os locais para os quais as chamadas de API vão — na maioria das vezes, um aplicativo web e um servidor. Um cliente móvel, por exemplo, gera uma chamada de API que vai para o endpoint de API, um servidor. O servidor recebe a chamada de API, processa-a, executa a solicitação e envia uma resposta.

Quando a Jan (a partir da analogia acima) liga para o bufê, ela o faz discando um número de telefone. Da mesma forma, as chamadas de API são direcionadas a um Identificador Uniforme de Recurso (URI).

Um URI é uma forma padronizada de identificar um recurso, assim como um número de telefone identifica uma linha telefônica. O recurso identificado pode ser um site, um aplicativo, um servidor, um contato por e-mail, ou mesmo um item do mundo real.

Para APIs da Web, normalmente o URI é um localizador uniforme de recurso (URL). Um URL é um tipo de URI para identificar locais da internet, como um site ou um servidor. Um URL deve incluir o protocolo de camada de aplicativos, como HTTP, usado para alcançá-la. Os endereços das páginas web são escritos como URLs, como "https://www.cloudflare.com/learning". Os endpoints de API também são URLs.

A maioria das APIs da web usa HTTP, de modo que está incluído no URL do endpoint de API. Por exemplo, o endpoint básico da API da Cloudflare é "https://api.cloudflare.com/client/v4/" (saiba mais). As chamadas da API baseadas em HTTP usam verbos HTTP (tipos de solicitações) como GET, POST e PUT para indicar qual serviço ou recurso eles precisam do endpoint de API.

Como as chamadas de API podem ser usadas para um ataque?

Como qualquer coisa exposta à internet, as APIs são vulneráveis a ataques de várias fontes. Os invasores podem usar chamadas de API de várias maneiras para atacar uma API, incluindo:

  • Negação de serviço (DoS) e ataques de negação de serviço distribuída (DDoS): esse tipo de ataque nega serviços a outros usuários da API. Os invasores podem inundar uma API com chamadas de API ou estruturar suas chamadas de API de forma a prender o servidor por um longo tempo.
  • Explorações de vulnerabilidade: os invasores podem tentar enviar chamadas de API que aproveitam uma falha na API para enganar o servidor e revelar dados que não deveria, executar de uma maneira para a qual não foi projetado ou fornecer acesso não autorizado.

Esses ataques e outros podem impactar negativamente uma organização que fornece serviços de API.

Como proteger APIs de chamadas de API inválidas

As seguintes estratégias podem ajudar a manter as APIs seguras.

  • Entender e acompanhar os endpoints de API: manter uma lista atualizada de todos os endpoints de API em produção.
  • Verificar clientes de API: a autenticação garante que as chamadas de API venham de um cliente legítimo. Existem várias maneiras de fazer isso, mas uma das mais eficazes é o TLS mútuo, um método de autenticação em que cada endpoint de API verifica o outro usando criptografia de chave pública.
  • Validar o esquema da API: o esquema de uma API é como suas regras de uso. Se uma chamada de API não seguir o esquema, pode ser uma tentativa maliciosa de explorar a API. A validação do esquema da API ajuda a identificar e bloquear chamadas de API inválidas.
  • Usar a mitigação de DDoS: um provedor de mitigação de DDoS bloqueia ou absorve solicitações excessivas para que um servidor não fique sobrecarregado. A Cloudflare é um desses provedores.

Leia mais detalhes sobre segurança para APIs. Ou leia sobre o API Shield da Cloudflare, que protege as APIs de uma ampla variedade de ataques.