Os proxies de datacenter são essencialmente proxies HTTP/S de alto desempenho que permitem editar o tráfego entre seu aplicativo e a Internet. Eles são usados por vários motivos, incluindo modificação de tráfego, problemas de depuração, fins de segurança (bloqueio de certos tipos de solicitações, ofuscação de onde seu aplicativo está hospedado), armazenamento em cache de conteúdo local etc. Este artigo abordará diferentes casos de uso em que proxies de datacenter são usados.
Como evitar a divulgação involuntária de informações privadas
Ao trabalhar com uma API, é importante garantir que ninguém fora de sua organização/aplicativo consiga acessar dados aos quais não deveria ter acesso. Na melhor das hipóteses, isso resulta em atenção indesejada de usuários irritados que de repente descobrem seus números de cartão de crédito publicados on-line; na pior das hipóteses, pode resultar com seu aplicativo sendo invadido.
Uma maneira de fazer isso é criar um proxy de datacenter que fica entre seu aplicativo e a API com a qual você está se comunicando. O proxy será responsável por garantir que todas as solicitações feitas sejam seguras ou higienizadas antes de chegarem à API.
Isso pode envolver anonimizar/ofuscar certas informações, remover algumas informações importantes (como números de cartão de crédito), garantir que os dados não sejam armazenados em cache no cliente. Se você mesmo tiver desenvolvido uma API, também pode usar essa abordagem para garantir que apenas usuários autenticados tenham acesso à sua base de código, colocando os detalhes de autenticação nos cabeçalhos HTTP passados pelo proxy do datacenter.
Outro caso de uso popular envolvendo informações privadas é quando uma API de terceiros muda repentinamente seus termos de serviço/API e não pode mais ser usada sem incorporar seu próprio mecanismo de autenticação. Nesse caso, será útil adotar a mesma abordagem geral envolvendo o desenvolvimento ou a modificação de um proxy existente para adicionar sua própria lógica de negócios personalizada para lidar com informações privadas.
Depuração
Ter um proxy de datacenter entre seu aplicativo e a Internet permite inspecionar o tráfego em vários pontos diferentes em sua infraestrutura. É algo útil principalmente quando se trata de depurar problemas de rede que possam surgir, além de garantir que não haja problemas de segurança com solicitações feitas de sua base de código – especialmente se essas solicitações estiverem chegando a uma API de terceiros que nem sempre se comporta como esperado.
Um problema comum que pode ocorrer ao atender um aplicativo a partir de um único local é que as solicitações às vezes podem ser bloqueadas ou sufocadas dependendo da empresa que presta o serviço. Por exemplo, se seu aplicativo estiver hospedado no Elastic Container Service da Amazon, você não poderá fazer com que todos os servidores da Amazon rejeitem solicitações à sua base de código, mesmo que algum dado arbitrário enviado pelo usuário cause problemas com ele.
Nesse caso, adicionar um proxy de datacenter entre o ECS da Amazon e seu aplicativo permitirá que você enxergue erros gerados pela infraestrutura da Amazon e garanta que eles sejam tratados adequadamente em sua própria infraestrutura/aplicativo por meio de log.
Segurança
Além de evitar a divulgação involuntária de informações privadas, conforme mencionado acima, os proxies de datacenter podem ser utilizados como uma ferramenta para evitar ataques de falsificação de solicitações entre sites. Isso é importante sobretudo quando um aplicativo não possui autenticação integrada e, em vez disso, depende de uma API de terceiros para lidar com a situação.
Quando um cliente faz uma solicitação por meio de seu aplicativo para uma API de terceiros, é possível que o usuário faça solicitações sem ter sido autenticado com o serviço de terceiros, o que permiti a ele fazer coisas que não deveriam conseguir executar, como alterar sua senha ou cancelar seu pagamento.
Nos casos em que há pouca/nenhuma infraestrutura de autenticação embutida em sua base de código, você tem duas opções: adicionar segurança extra você mesmo ou usar um desses proxies de datacenter. Talvez você já lide com a autenticação por conta própria, mas isso consumirá tempo e pode resultar em erros. A alternativa é usar um desses proxies de datacenter que faz autenticação para você, o que garante que as solicitações feitas a essa API de terceiros sejam apenas por usuários autenticados e no contexto correto (como um usuário com as permissões corretas).
Geolocalização
Talvez você queira atender diferentes versões de seu aplicativo dependendo de onde os usuários do mundo estão vindo, ou seja, se eles estiverem visitando/usando seu aplicativo de dentro da União Europeia, convém adicionar funcionalidades extras, como exibir preços, incluindo imposto sobre serviços oferecidos na Europa.
Na medida do possível, recomendamos evitar ter regras codificadas em sua base de código ('visualizações' no Django, respostas do controlador no Rails, etc.) e, em vez disso, confiar em adicionar essa lógica ao seu proxy de datacenter. Fazer isso permite que você alterne entre diferentes proxies dependendo das localizações de seus usuários – por exemplo, se um usuário vier da Europa, você pode alternar para um proxy específico da UE que garantirá que os preços sejam exibidos como esperado.
Conclusão
Em suma, os proxies de datacenter podem ser usados por vários motivos e oferecem muitos benefícios quando se trata de simplificar sua infraestrutura e garantir que seu aplicativo comporte-se conforme o esperado. Com as considerações acima em mente, você estará no caminho certo para adicionar um desses proxies à sua infraestrutura.