Skip to content
This repository has been archived by the owner on May 28, 2023. It is now read-only.

Como disponibilizar o laguinho pra todo mundo? #21

Closed
JoseRenan opened this issue Mar 24, 2019 · 12 comments
Closed

Como disponibilizar o laguinho pra todo mundo? #21

JoseRenan opened this issue Mar 24, 2019 · 12 comments
Labels
discussão Further information is requested precisa de ajuda Extra attention is needed

Comments

@JoseRenan
Copy link
Member

Pessoas, o laguinho já tá em pé e etc, mas a gente precisa restringir o acesso a ele, pra gente evitar flood malicioso e saber quem tá acessando, uma forma que pensei de fazer isso foi ter um sistema de dev account pra vc gerar seu token, mais ou menos como é feito nas APIs do github, spotify, twitter, facebook e etc, o que acham? e como vcs acham que a gente podia botar isso pra funcionar?

@JoseRenan
Copy link
Member Author

/cc @paulojbleitao @juliobguedes @thayannevls @JuanBarros2

@JoseRenan JoseRenan added precisa de ajuda Extra attention is needed discussão Further information is requested labels Mar 24, 2019
@JuanBarros2
Copy link
Contributor

Acho bom isso mas sei que existem ferramentas pra restringir isso sem precisar token. Acho que é o NGinx que faz isso se não me engano

@JuanBarros2
Copy link
Contributor

A gente usa algumas no projeto do analytics, acho que posso perguntar mais detalhes para o pessoal que entende

@danielmitre
Copy link

@JoseRenan
Copy link
Member Author

O que eu não gosto sobre NGINX (dadas nossas condições de infraestrutura kkkk) é precisar ter uma VM rodando com ele na frente do app, e com um token a gente poderia simplesmente matar o token em caso de uso malicioso do laguinho apesar de só conseguir pensar em flood no momento 🤔

@danielmitre
Copy link

No caso do token, todo mundo que fosse fornecer um projeto que usasse algum dado via laguinho precisaria fazer um tratamento/cache server-side e fornecer ele mesmo a API usando o próprio token tendo cuidados para não floodar. Deve funcionar, mas também não parece muito amigável.

Uma opção é criar um pequeno hand-shake de autenticação que requer resolver um hash que gastará alguns segundos pra ser calculado. Nesse caso o flood mirando uma API seria tecnicamente inviável, mas ainda poderia haver um DoS criando conexões e não resolvendo os hashs.

Uma terceira opção que não deve afetar a infraestrutura do servidor é de fato fazer algum gerenciamento de IP e/ou controle de recursos no node, não deve ser difícil de implementar algo bom o bastante através de um middleware, mas já existem vários pacotes no node para isso.

@JuanBarros2
Copy link
Contributor

Conversei com um colega de trabalho que tem experiencias em projetos open source e web e ele falou pra avaliar previamente se é mesmo necessário. Ele falou que foram poucas as vezes que isso realmente aconteceu nos sistemas que ele participou, mas recomendou o uso do NGinx.

@JuanBarros2
Copy link
Contributor

Ele falou também que criar token pode ser uma barreira a mais pra quem quer utilizar a endpoint e que só usaria se achasse que era realmente necessário via demanda dos usuários.

@thayannevls
Copy link
Contributor

Fico pensando se vale essa discussão tão cedo sem sabermos ainda do que realmente precisamos e tendo tão poucas endpoints e pessoas usando.

@JuanBarros2
Copy link
Contributor

O ultimo ponto que ele falou foi sobre dar mais importância ao tempo de resposta via BD. Ele falou que isso costuma ser um gargalo mais recorrente e que deveríamos considerar antes de se preocupar com esses ataques em massa.

@JuanBarros2
Copy link
Contributor

Concordo com @thayannevls. Acho que talvez no máximo caiba adicionar um NGinx, pois ele já trata de algumas questões triviais de segurança que a gente não teria tempo de implementar. Fora isso, acho que seria perder tempo em outras questões mais importantes mesmo.

@thayannevls
Copy link
Contributor

Resolvido aqui #31

#31 (comment)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
discussão Further information is requested precisa de ajuda Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants