A limitação de taxa bloqueia usuários, bots ou aplicativos que usam excessivamente ou abusam de uma propriedade da web. O limitação de taxa pode parar certos tipos de ataques de bots.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
A limitação de taxa é uma estratégia para limitar o tráfego de rede. Ela limita a frequência com que alguém pode repetir uma ação dentro de um determinado período de tempo – por exemplo, tentar fazer login em uma conta. A limitação de taxa pode ajudar a parar certos tipos de atividades de bots maliciosas. Também pode reduzir a tensão nos servidores web. No entanto, a limitação de taxa não é uma solução completa para gerenciar as atividades de bots.
A limitação de taxa é geralmente empregada para impedir que os bots ruins afetem negativamente um site ou aplicativo. Os ataques de bot que a limitação de taxa pode ajudar a mitigar incluem:
A limitação de taxa também protege contra o uso excessivo de APIs, o que não é necessariamente malicioso ou devido à atividade do bot, mas é importante evitar mesmo assim.
A limitação de taxa é executada em um aplicativo, em vez de ser executada no próprio servidor web. Normalmente, a limitação de taxa se baseia no rastreamento dos endereços de IP de origem das solicitações e no rastreamento de quanto tempo decorre entre cada solicitação. O endereço de IP é a principal forma de um aplicativo identificar quem ou o que está fazendo a solicitação.
A solução de limitação de taxa mede a quantidade de tempo entre cada solicitação de cada endereço de IP e também mede o número de solicitações dentro de um período de tempo especificado. Se houver muitas solicitações de um único IP dentro do prazo determinado, a solução de limitação de taxa não atenderá às solicitações do endereço de IP por um determinado período de tempo.
Essencialmente, um aplicativo com limitação de taxa dirá "Ei, diminua a velocidade" para usuários únicos que estão fazendo solicitações em uma taxa rápida. Isso é comparável a um policial que para um motorista por exceder o limite de velocidade da estrada, ou a um pai que diz a seu filho para não comer tanto doce em tão pouco tempo.
Um endereço de IP é o identificador numérico exclusivo (ou, no IPv6, alfanumérico) atribuído a qualquer dispositivo que se conecte à internet. Cada dispositivo terá seu próprio endereço de IP enquanto estiver on-line e, como um endereço físico ou um número de telefone, isso permite que os dispositivos enviem mensagens de um lado para o outro. Um endereço tradicional (IPv4) se parece com isso: 198.41.129.1
Para os dispositivos dos usuário, os endereços de IP geralmente não são permanentes, porque não há endereços de IP suficientes para circular no IPv4. Em vez disso, o provedor de serviços de internet do usuário atribuirá endereços dinamicamente à medida que os dispositivos se conectam à internet.
A solução de limitação de taxa pode usar um endereço de IP como base para determinar quais dispositivos estão fazendo muitas solicitações e devem ser bloqueados temporariamente.
Os usuários podem ficar sem acesso a uma conta se tentarem, sem sucesso, fazer login muitas vezes em um curto período de tempo. Isso ocorre quando um site tem uma limitação de taxa de login em vigor.
Essa precaução existe, não para frustrar os usuários que esqueceram suas senhas, mas para bloquear ataques de força bruta em que um bot tenta milhares de senhas diferentes para adivinhar a correta e invadir a conta. Se um bot puder fazer apenas 3 ou 4 tentativas de login por hora, é estatisticamente improvável que esse ataque seja bem-sucedido.
A limitação de taxa em uma página de login pode ser aplicada de acordo com o endereço de IP do usuário que está tentando fazer login ou de acordo com o nome de usuário do usuário. Idealmente, ela deveria usar uma combinação dos dois, porque:
Como a limitação de taxa é necessária para evitar esses ataques de força bruta, os usuários que não conseguem lembrar suas senhas podem ser submetidos à limitação de taxa junto com bots maliciosos. Os usuários provavelmente verão uma mensagem de "muitas tentativas de login" de algum tipo e serão solicitados a tentar novamente dentro de um período de tempo especificado, ou serão avisados de que estão totalmente bloqueados em suas contas.
Uma API, ou interface de programação de aplicativos, é uma maneira de solicitar a funcionalidade de um programa. As APIs são invisíveis para a maioria dos usuários, mas são extremamente importantes para que os aplicativos funcionem corretamente. Por exemplo, o site de um restaurante pode contar com a API de um serviço de reserva de mesas para permitir que os clientes façam reservas on-line. Ou, uma plataforma de comércio eletrônico pode integrar a API de uma empresa de transportes para fornecer aos usuários custos de envio precisos.
Toda vez que uma API responde a uma solicitação, o proprietário dessa API precisa pagar pelo tempo de computação: os recursos do servidor necessários para que o código seja executado e produza uma resposta a essa solicitação de API. No exemplo acima, a integração da API do restaurante fará com que o serviço de reserva de mesa pague pelo tempo de computação sempre que um cliente do restaurante fizer uma reserva.
Por esse motivo, qualquer aplicativo ou serviço que ofereça uma API para desenvolvedores terá limitações de quantas chamadas de API podem ser feitas por hora ou dia por cada usuário único. Dessa forma, os desenvolvedores terceirizados não abusam de uma API.
A limitação de taxa também pode motivar os desenvolvedores a pagar mais para aproveitar a API: geralmente eles só podem fazer algumas chamadas de API antes de pagar mais pelo serviço da API.
A limitação de taxa para APIs também ajuda a proteger contra ataques de bots maliciosos. Um invasor pode usar bots para fazer tantas chamadas repetidas para uma API que torna o serviço indisponível para qualquer outra pessoa ou trava o serviço completamente. Este é um tipo de ataque DoS ou DDoS.
A limitação de taxa das plataformas de redes sociais geralmente é semelhante à limitação de taxa de APIs. Qualquer aplicativo de terceiros que integre o X (antigamente conhecido como Twitter), por exemplo, só pode atualizar para procurar novas postagens ou mensagens uma certa quantidade de vezes por hora. O Instagram tem limites semelhantes para aplicativos de terceiros. É por isso que os usuários podem ocasionalmente encontrar mensagens de "limite de taxa excedido".
A limitação de taxa é bastante unidimensional: embora útil, ela só pode interromper tipos muito específicos de atividades de bots. Além disso, a limitação de taxa não é apenas para bots, mas para limitar o uso em geral. O Rate Limiting da Cloudflare, por exemplo, protege contra ataques DDoS, abusos de API e ataques de força bruta, mas não necessariamente mitiga outras formas de atividades maliciosas de bots e não distingue entre bots bons e ruins.
O gerenciamento de bots, ao contrário, consegue detectar holisticamente as atividades de bots em geral. Por exemplo, o Gerenciamento de Bots da Cloudflare usa aprendizado de máquina para identificar prováveis bots, o que lhe permite bloquear uma variedade maior de ataques de bots (como preenchimento de credenciais, postagem de spam, acumulação de estoque etc.). Organizações menores também podem bloquear bots do mal com o Modo Super Bot Fight, disponível nos planos Pro e Business da Cloudflare.