
APIs are critical components of modern applications, enabling communication between different systems. However, they are also frequent targets for ...
For further actions, you may consider blocking this person and/or reporting abuse
Excelente material mas gostaria de adicionar que configurar medidas de segurança, como rate limiting por exemplo, no proxy em vez do servidor de aplicação (como .Net no exemplo) oferece várias vantagens:
Melhor Performance: O proxy é otimizado para lidar com grandes volumes de requisições, aliviando a carga do servidor de aplicação.
Controle Centralizado: Permite gerenciar e aplicar regras de segurança de forma consistente em sistemas distribuídos.
Maior Segurança: Bloqueia tráfego excessivo ou malicioso antes que alcance o servidor, reduzindo vulnerabilidades.
Facilidade de Configuração: Ferramentas como
Nginx
oferecem módulos prontos, evitando a necessidade de escrever lógica personalizada.Políticas Avançadas: Suporte a limites dinâmicos, baseados em IP, cabeçalhos ou chaves de API, além de permitir "bursts" temporários.
Escalabilidade: Ajuda a manter o sistema eficiente ao adicionar novos servidores, sem necessidade de sincronizar estados.
Código Mais Limpo: A separação de responsabilidades mantém a lógica de segurança fora do código da aplicação.
Embora a aplicação também possa implementar medidas específicas, como limites baseados em usuários ou lógica de negócios, o uso de um proxy é mais eficiente, seguro e fácil de manter.
O uso do proxy é uma abordagem muito boa, mas devemos sempre prestar atenção natureza do projecto.
Se for um projecto que tem a margem que crescer em cada ano, a abordagem mais acertiva é usar proxy mas em sistema em ecossistemas pequeno, usar proxy acaba não batendo muito certo.
Muito obrigado pela contribuição, @marciopedrocomba !
Certo @tiagomabango mas vale lembrar que hoje em dia usar um proxy é muito barato e fora as questões de segurança você tem ganho de alto throughput, baixa latência, tens a questão de lidar com requisições em paralelo sem sobre carregar a tua aplicação, cache e muito mais. Então usar um proxy independente do tamanho do projecto é um must nos dias de hoje
@marciopedrocomba, um ponto muito importante!.
Obrigado, tomei notado...
Thank you very much, very instructfull article
Thanks, is very good to know that!
Nice! This is a good start.
If I may make one suggestion. The thing with bad IPs is that they will DDOS your app by just making several requests in a short space of time. Each request will put pressure on your APP's runtime, so it's generally better to handle bad IPs at a firewall level.
So you would put a cloud firewall in front of your server first and block them there before they even get to the web/app server.
Additionally, you could add a blocker in web servers like Nginx. Nginx can further rate limit as well and requests to Nginx are less expensive compared to invoking your application runtime usually.
In these cases, the proxy works very well, you just mentioned Nginx, which is very well known.
I noted the observation, thank you very much for your contribution.
Thanks for sharing!
Thanks for your comment, It's great to know that we share and help others!!
I fail to see how this is tagged #c, which is for ANSI C programming language not C# !
Please change the tag to #csharp, muchas gracias
Cheers !
thanks, i will change!