Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

HTTPs em APIs

Digamos que tenho um cliente que é um webApp, por exemplo, em Javascript hospedado em um website que está sendo servido em HTTP, ou ainda um Aplicativo Cordova que por ser instalado num celular não roda em HTTPS.

Quando esse cliente (não seguro) consome uma API em HTTPS, as informações trafegadas entre eles estão seguras?

4 respostas

Fala aí Marco, blz? Lembre-se sempre que o https vai estar rodando do lado do servidor. Ou seja o seu app em cordova vai consumir um serviço que está sendo servido em https. Dessa forma o a transferencia será tratada como segura.

Olá Fernando, obrigado pela resposta.

Só para ficar claro, se o usuário digita o e-mail e senha num webApp, que faz uma requisição Ajax para o servidor em HTTPS, esse e-mail e senha já estão criptografados mesmo sem ter havido qualquer interação anterior com o server?

O browser faz o download do certificado e faz a criptografia automaticamente antes de fazer qualquer requisição, é isso?

Com isso não há a necessidade das duas pontas estarem sendo servidas em HTTPS, basta uma ponta ser HTTPS que já é o suficiente?

solução!

Bom dia! Marco, o cliente, ao fazer tentar se comunicar com o servidor terá que escolher um protocolo. Ele não vai usar http e o servidor https. Ou os dois usam http ou os dois usam https para aquela conexão que é única (stateless).

Veja, você pode acessar seu app por meio de http, mas, se em algum momento ele for consumir algo de um serviço comunicando-se com este serviço usando https, esta (e apenas esta) comunicação será criptografada.

Vejamos:

  1. Por exemplo, quando você acessa: http://localhost/app ou http://abobrinha.com.br/app. Esta conexão não é segura. O que é trocado entre o navegador e o servidor (localhost ou abobrinha) não está sendo criptografado enquanto o protocolo da URL for http.
  2. Em algum momento, este app conecta-se, por exemplo, com https://maps.google.com via javascript para consumir o serviço de mapas da Google. Na verdade quem se conecta é o navegador se o javascript estiver codificado no front-end. Esta conexão é segura e o que trafega entre o navegador e o servidor está criptografado. Isto vale se o app é carregado por meio da barra de endereços de um navegador ou em background por uma webview.
  3. Então, se este login e senha que você menciona na sua mensagem são enviados via Ajax em um POST e a URL desta requisição usar o protocolo https, sim, os dados estarão trafegando de forma criptografada.

Espero ter ajudado a esclarecer. Se ficou dúvidas, pergunte que tento explicar melhor.

Perfeito. Obrigado pela resposta Thiago!