Nossa opinião

Por que devem existir cotas tanto por conta quanto por rede

Uma cota por conta responde a uma pergunta simples: quanto esta chave específica já usou. É a primeira coisa natural a controlar, e ela não basta sozinha, porque uma chave é apenas uma credencial, e credenciais podem ser multiplicadas. Alguém decidido a ultrapassar um limite por conta muitas vezes pode simplesmente criar outra conta, gerar outra chave e começar uma cota nova, a menos que algo mais esteja controlando uma dimensão que não é zerada só porque uma nova credencial foi emitida.

É para isso que servem as cotas por rede. Cada rede, um bloco /24 para endereços IPv4 ou um bloco /48 para IPv6, recebe uma cota gratuita compartilhada de 2.500 requisições por dia, contada somando o tráfego sem chave e todas as chaves registradas a partir dessa rede. Um limite apenas por conta permitiria que alguém gerasse novas chaves indefinidamente para continuar zerando sua cota gratuita. Um limite por rede fecha essa lacuna específica, porque controla de onde o tráfego realmente vem, e não apenas qual credencial por acaso estava associada a ele.

Nenhuma das duas medidas basta sozinha, e vale ser específico sobre o que cada uma protege, já que elas resolvem problemas diferentes. O controle por conta protege contra uma única credencial ser usada muito além do que deveria, o que importa para a precisão da cobrança e para detectar uma chave vazada sendo usada onde não deveria. O controle por rede protege especificamente contra a multiplicação da cota gratuita por meio de cadastros repetidos, um modo de falha diferente que o controle por conta sozinho não enxerga, já que cada conta nova parece perfeitamente normal quando vista isoladamente.

Usar as duas ao mesmo tempo cria, sim, uma complicação legítima: vários usuários genuínos compartilhando uma rede, como uma empresa atrás de um pequeno número de endereços IP públicos, poderiam em teoria esbarrar em um teto por rede que não tem nada a ver com o uso real de nenhum usuário individual. Lidamos com isso com vagas de IP rotativas, um número fixo de endereços distintos a partir dos quais uma chave pode ser usada, e com cabeçalhos de cota que mostram exatamente quantas dessas vagas estão em uso em relação ao limite, para que uma rede compartilhada legítima possa ver sua situação real em vez de bater em uma parede opaca sem nenhuma explicação.

Achamos que este é um caso em que o design mais simples, controlar apenas uma dimensão, seria na verdade pior para usuários honestos, e não apenas menos protetor contra abuso. Um limite apenas por rede penalizaria uma conta por outras atividades sem relação na mesma rede. Um limite apenas por conta deixaria a cota gratuita aberta a ser multiplicada indefinidamente por qualquer pessoa disposta a criar contas suficientes. Usar os dois, com visibilidade de cada um pelos cabeçalhos de resposta, significa mais peças em movimento, mas é a versão que realmente protege o que uma cota gratuita deve proteger, sem punir silenciosamente as pessoas que a usam como previsto.