Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementa Rate Limit na API: Rotas com POST, PATCH e DELETE #656

Closed
filipedeschamps opened this issue Aug 18, 2022 · 4 comments
Closed
Labels
back Envolve modificações no backend

Comments

@filipedeschamps
Copy link
Owner

filipedeschamps commented Aug 18, 2022

Contexto

Continuando a implementar o rate-limit proposto pela issue #639 e que já foi iniciado na issue #635, mas dessa vez vamos começar a trabalhar em outros endpoints sensíveis.

Execução

Estava analisando os endpoints da API e destaquei o seguinte:

Método Caminho Cuidado
PATCH /api/v1/activation intermediário
POST /api/v1/contents baixo
POST /api/v1/recovery alto
PATCH /api/v1/recovery alto
DELETE /api/v1/sessions intermediário
POST /api/v1/sessions altíssimo
POST /api/v1/users baixo
PATCH /api/v1/users/[username] baixo
GET /api/v1/user ???

PS: Faltou algum endpoint que vocês notaram?

Não sei se vocês concordam com essa classificação, mas na verdade a parte mais curiosa na minha opinião é o GET /api/v1/user. Destaco isso, pois é um endpoint em que você não consegue enviar nada, a não ser o session_id (como qualquer outro endpoint que recebe e interpreta o session_id), mas ele é especial porque, se quebrar ele por falta de rate-limit, os dados pessoais do usuário são retornados.

Então por um lado, ele não oferece vetor de ataque adicional, porém se quebrado, devolve informações sensíveis. Especial, não?

De qualquer forma, a inclusão de controles específicos para mais endpoints está impraticável no código atual. Então estou proponto no PR abaixo a refatoração, e depois a adição das novas rotas:

@filipedeschamps filipedeschamps added front Envolve modificações no frontend back Envolve modificações no backend and removed front Envolve modificações no frontend labels Aug 18, 2022
@filipedeschamps
Copy link
Owner Author

Fechado por #657 e vamos considerar essa a primeira versão, pois o @aprendendofelipe destacou pontos muito importantes no PR e que devem ser implementados 🤝

@filipedeschamps
Copy link
Owner Author

Por enquanto o uso está assim:

image

@filipedeschamps
Copy link
Owner Author

Registrando aqui o uso:

image

@filipedeschamps
Copy link
Owner Author

Vai vir o primeiro billing do Upstash de 0.47 dolares:

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
back Envolve modificações no backend
Projects
None yet
Development

No branches or pull requests

1 participant