Introdução — Charles Proxy para interceptar requisições e respostas

Charleston A.
3 min readJul 24, 2020

Charles é um proxy HTTP, ele encarrega-se de interceptar as requisições entre os dispositivos e a internet. Tornando-se possível modificar requisições e respostas.

Mais conhecido popularmente dentro das empresas como Charlinho.

O que o Charles Proxy oferece?

  • Proxy HTTP & HTTPS
  • Reverse Proxy
  • Throttling
  • Port Forwading
  • Breaking point
  • Rewrite requests
  • DNS Spoofing

O que todo mundo vê?

Não, ele não é um mock server

O Charlinho é um Proxy; e um proxy é um intermediador entre o Cliente e o Servidor

Dessa forma ele se empenha em intermediar tudo o que tráfega na rede entre o seu aparelho e o servidor. Sendo assim, ele possui ferramentas para auxiliar na interceptação dos dados.

A diferença entre um proxy e um MockServer: proxy trabalha com os dados reais de tráfego de dados e o mock apenas recebe os dados já recebidos em seu servidor e a partir disso cria um mock de resposta.

Qual a vantagem de usar um Proxy?

Com o proxy é possível trabalhar com os dados reais.

Assim toda segurança da informação pode ser analisada corretamente e também podemos trabalhar com a alteração dos dados do pacote que esta transitando para o seu destino.

Quando podemos usar?

Usamos o Charles Proxy em diversos cenários, para garantir a confidencialidade da informação que esta trafegando na rede. Então trabalhamos na segurança da informação, analisando todo o tráfego e descobrindo possíveis brechas.

Criamos cenários de testes durante o desenvolvimento, usando a ferramenta Rewrite para modificar respostas do servidor. Por exemplo: Time de API esta trabalhando na criação de um endpoint, então simulamos a existência desse endpoint recebendo respostas.

É possível criar cenários de testes com a equipe de Qualidade, assim reescrevemos requisições e também podemos trabalhar com o Throttling dos dados para simular diversos tipos de conexões de rede (Wifi, 3G, instabilidade)

Usamos o recurso de Proxy Reverse para modificar o destino da requisição, assim podemos modificar a chamada feita para um ambiente de Homologação e apontamos para uma máquina local.

Casos do dia-a-dia

  • Podemos interceptar as requisições e modificar (rewrite)
  • Podemos interceptar as respostas e modificar (rewrite)
  • Criamos um Proxy Reverse para “bater” em outro servidor
  • Trabalhar com Throttling dos dados, simulando requisições que acontecem nas redes 3G, 4G, 5G, 100Mbps Fibre e uma rede instável
  • Também é possível adicionar Breaking points nas chamadas que estão acontecendo entre um aparelho e o servidor
  • Usando Spoof é possível modificar a origem da requisição (IP, DNS) para realizar um teste de segurança de origin

Como ele funciona?

O Charlinho é um software que instalamos em nosso computador, dessa forma podemos ativá-lo para funcionar como Proxy. Ou seja, ele torna nosso computador um Proxy de rede.

Assim, configuramos um aparelho modificando sua conexão de rede adicionando um proxy.
Esse proxy que podermos adicionar será o IP do nosso computador que está rodando o Charlinho, assim qualquer requisição que esse aparelho fizer, vai chegar no nosso computador.

Assim podemos trabalhar com todas as ferramentas que ele oferece.

Ele é seguro?

Sim, ele é totalmente seguro.

Para realizar todas interceptações da rede, temos que configurar nossa rede e também adicionar um certificado de segurança em nosso cliente. Assim, dizemos que nosso cliente autoriza essa interceptação dos dados.

Também na própria ferramenta podemos adicionar filtros de controle de acesso, a onde podemos inserir um IP range.

Outro ferramenta e o uso de External Proxy Server, onde podemos trabalhar com o Charles dentro de uma rede VPN.

A intermediação dos dados só acontece enquanto o Charles Proxy estiver ativo (podemos desligar a qualquer momento)

The End

Depois vamos continuar com outros artigos de casos reais do dia-a-dia

  • Configurando Android/iOS/PC
  • Criando um servidor de API (mock)
  • Modificando requisições e respostas
  • Simular redes de 3G, 4G, 100Mbps, instabilidades e outras redes
  • Usando Proxy Reverse para apontar ambientes de Staging para Local

--

--